Mon Apr 17 09:48:17 2000 Balachandran Natarajan * docs/Options.html: Updated the documentation. Sun Apr 16 21:50:00 2000 Kirthika Parameswaran * tests/Smart_Proxies/client.dsp: * tests/Smart_Proxies/server.dsp: Added some options for the release version to ward of build errors. Sun Apr 16 21:23:43 2000 Krishnakumar Elakkara Pathayapura * orbsvcs/examples/Log/test/BasicLog_Test.cpp (init): Fixed a warning by removing an unused variable Sun Apr 16 21:20:19 2000 Krishnakumar Elakkara Pathayapura * orbsvcs/examples/Log/test/BasicLog_Test.cpp: Fixed a warning by removing an unused variable Sun Apr 16 17:15:33 2000 Jeff Parsons * tao/ifrfwd.h: Fixed typo in typedef of IR_ComponentRepository to IR::ComponentRepository. Sun Apr 16 17:04:03 2000 Pradeep Gore * orbsvcs/examples/CosEC/Factory/CosEventChannelFactory_i.h: disabled MSVC "inheritance via dominance" warnings. Sun Apr 16 10:25:53 2000 Carlos O'Ryan * tao/ORB.h: The test should be #if (TAO_HAS_INTERCEPTORS == 1) not #if defined(TAO_HAS_INTERCEPTORS) Sat Apr 15 19:48:47 2000 Darrell Brunsch * tao/POA.cpp: ImR code was using this->the_name () to figure out the POA name. It now uses this->name ().c_str () instead so we don't have a local copy of the string to clean up. * TAO_IDL/tao_idl.dsp: * orbsvcs/Naming_Service/Naming_Service.dsp: * tao/TAO.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. * orbsvcs/Naming_Service/NT_Naming_Service.dsp: Sandro Doro reported that NT_Naming_Service wasn't linking to some win32 libraries it needed. Added user32.lib and advapi32.lib. Sat Apr 15 19:44:40 2000 Darrell Brunsch (On behalf of Christopher Kohlhoff ) * tao/Makefile.bor: Added new files. * tao/Smart_Proxies.h: Added missing pre/post includes. * TAO_IDL/Makefile.bor: Tidied up formatting. * orbsvcs/orbsvcs/AV.bor: (added) * orbsvcs/orbsvcs/CosConcurrency.bor: (added) * orbsvcs/orbsvcs/CosEvent.bor: (added) * orbsvcs/orbsvcs/CosLifeCycle.bor: (added) * orbsvcs/orbsvcs/CosNaming.bor: (added) * orbsvcs/orbsvcs/CosNotification.bor: (added) * orbsvcs/orbsvcs/CosProperty.bor: (added) * orbsvcs/orbsvcs/CosTime.bor: (added) * orbsvcs/orbsvcs/CosTrading.bor: (added) * orbsvcs/orbsvcs/DsLogAdmin.bor: (added) * orbsvcs/orbsvcs/RTEvent.bor: (added) * orbsvcs/orbsvcs/RTSched.bor: (added) * orbsvcs/orbsvcs/Svc_Utils.bor: (added) * orbsvcs/orbsvcs/Makefile.bor: Added makefiles for split up orbsvcs. * orbsvcs/CosEvent_Service/Makefile.bor: * orbsvcs/Event_Service/Makefile.bor: * orbsvcs/Naming_Service/Naming_Service.bor: * orbsvcs/Naming_Service/NT_Naming_Service.bor: * orbsvcs/Notify_Service/Makefile.bor: * orbsvcs/Trading_Service/Makefile.bor: * tests/InterOp-Naming/client.bor: * tests/InterOp-Naming/server.bor: * utils/nslist/Makefile.bor: Updated for new orbsvcs libraries. * orbsvcs/orbsvcs/AV/AV_export.h: Removed unnecessary include of ace/pre.h. * orbsvcs/orbsvcs/ESF/ESF_Peer_Admin.cpp: * orbsvcs/orbsvcs/ESF/ESF_Peer_Admin.i: Workaround for C++Builder compiler bug - compiler doesn't like having this template constructor inlined. Sat Apr 15 21:53:44 2000 Pradeep Gore * orbsvcs/orbsvcs/Notify/Notify_Event_Manager.cpp: added explicit template instantiation directives for ACE_Hash and ACE_Equal_To to fix linking errors in orbsvcs with suncc5. Sat Apr 15 20:00:00 2000 Kirthika Parameswaran * tao/TAO.dsp: Rectified the lost Smart_PRoxies.{h,cpp,i} entries in the .dsp by adding them once again. Sat Apr 15 14:23:05 2000 Carlos O'Ryan * orbsvcs/orbsvcs/Makefile.DsLogAdmin: * orbsvcs/orbsvcs/Makefile.CosNotification: Fix problems with DU/CXX builds. Fri Apr 14 21:40:49 2000 Irfan Pyarali * tao/POA.cpp (servant_to_id_i): The following functionality was missing from the POA since it was added recently to the spec: If the POA has the USE_DEFAULT_SERVANT policy, the servant specified is the default servant, and the operation is being invoked in he context of executin a request on the default servant, then the ObjectId associated with the current invocation is returned. Thanks to Steve Totten for noticing this and providing a patch for the missing implementation. * examples/POA/Default_Servant/File_i.cpp: Added two additional ways of accessing our object id. This will act as a test for the new implementation for servant_to_id() and for access to the POA Current. Fri Apr 14 18:21:31 2000 Jeff Parsons * orbsvcs/IFR_Service/Makefile.TypeCodeFactory: * orbsvcs/IFR_Service/TCF_Export.h: * orbsvcs/IFR_Service/TCF_Loader.h: * orbsvcs/IFR_Service/TCF_Loader.cpp: * orbsvcs/IFR_Service/TypeCodeFactory_skel.cpp: * orbsvcs/IFR_Service/TypeCodeFactory_i.h: * orbsvcs/IFR_Service/TypeCodeFactory_i.cpp: * orbsvcs/IFR_Service/IFR.dsw: * orbsvcs/IFR_Service/TypeCodeFactory_DLL.dsp: * docs/releasenotes.orbcore.html: The typecode creating functions are now in class CORBA::TypeCodeFactory, implemented as a DLL in the same directory where the future Interface Repository will reside (TypeCodeFactory is used by the Interface Repository, but can also be used separately. The object reference is now obtained by calling resolve_initial_references ("TypeCodeFactory"). See the releasenotes entry for more details. Fri Apr 14 17:12:46 2000 Krishnakumar Elakkara Pathayapura * orbsvcs/examples/Log/test/BasicLog_Test.h (class BasicLog_Test): * orbsvcs/examples/Log/test/BasicLog_Test.cpp (class BasicLog_Test): * orbsvcs/examples/Log/test/client.cpp: Fixed some errors for Digital Unix. Fri Apr 14 14:30:00 2000 Kirthika Parameswaran * tao/orbconf.h: Moved MINIMUM_CONNECTION_CACHING_STRATEGY definition to after MINIMUM_CORBA definition so that it can be disabled for MINIMUM_CORBA. Thanks to Irfan Pyarali for observing this. * TAO_IDL/util/utl_global.cpp: Added the -Gsp flag for generation of smart proxy classes automatically when TAO_HAS_SMART_PROXIES is enabled. This resolves build errors obtained when compiling with TAO_HAS_SMART_PROXIES enabled. Thanks to Bala for helping with putting this in the appropriate location in TAO_IDL compiler code. Fri Apr 14 11:02:31 2000 Jeff Parsons * tao/corbafwd.h: * tao/DomainC.h: * tao/DomainC.cpp: * tao/DomainS.cpp: * tao/InterfaceC.h: * tao/InterfaceC.i: * tao/InterfaceC.cpp: * tao/InterfaceS.h: * tao/InterfaceS.cpp: * tao/Object.h: * tao/Object.cpp: * tao/ORB.h: * tao/ORB.cpp: * tao/orbconf.h: * tao/POA_CORBA.h: * tao/TAO.dsp: * tao/TAO_static.dsp: Changes related to the forthcoming Interface Repository, and some code moved out to the directory where the TypeCodeFactory DLL resides (to be checked in shortly). * tao/ifrfwd.h: New file, the IR namespace is now handled similarly to the handling of the CORBA namespace in TAO. * tao/InterfaceS.i: Removed file, this code will be in the directory with the rest of the Interface Repository files. Fri Apr 14 08:16:02 2000 Carlos O'Ryan * orbsvcs/orbsvcs/Makefile.CosEvent: * orbsvcs/orbsvcs/Makefile.RTEvent: The DU C++ compiler needs to have the templates in a directory accessible through the -I flags. Fri Apr 14 09:12:24 2000 David L. Levine * orbsvcs/orbsvcs/Makefile: don't build LifeCycle Service with g++ prior to 2.8. For unknown reasons, tao_idl build with old g++ doesn't handle the _supports token in LifeCycle.idl. Thu Apr 13 13:07:56 2000 Balachandran Natarajan * tao/GIOP_Message_Lite.cpp (write_reply_header): Fixed a warning in SUNOS_EGCS. Thu Apr 13 11:56:57 2000 Balachandran Natarajan * tao/GIOP_Message_Lite.cpp: Removed the reply header in the Service Context List. This was a waste. We don't send the Service_Context with the Request header, that is how GIOPlite has been designed, and it looks like a waste to send that in the reply header. Thu Apr 13 08:58:45 2000 Carlos O'Ryan * orbsvcs/tests/CosEvent/Basic/Disconnect.dsp: * orbsvcs/tests/CosEvent/Basic/MT_Disconnect.dsp: * orbsvcs/tests/CosEvent/Basic/Pull_Push_Event.dsp: * orbsvcs/tests/CosEvent/Basic/Push_Event.dsp: * orbsvcs/tests/CosEvent/Basic/Shutdown.dsp: * orbsvcs/tests/CosEvent/lib/CECTest.dsp: * orbsvcs/tests/EC_Custom_Marshal/ECCM_Consumer.dsp: * orbsvcs/tests/EC_Custom_Marshal/ECCM_Supplier.dsp: Last night builds caught a number of problems with these project files. They should be fixed now. Wed Apr 12 16:35:56 2000 Irfan Pyarali * tao/orbconf.h: CORBA Messaging is required for AMI. Enforced this condition in orbconf.h. Otherwise, users will end up with weird errors. Wed Apr 12 15:15:15 2000 David L. Levine * orbsvcs/tests/Concurrency/lex.CC_command.cpp (ACE_CC_YY_DECL), lex.CC_command.cpp.diff: added initializations of ace_cc_yy_cp and ace_cc_yy_bp to 0, so that g++ doesn't complain about possible unitialized uses. Thanks to Vishal for reporting this. Tue Apr 11 23:33:16 2000 Nanbor Wang * tao/orbconf.h: Disabled SHMIOP by default if TAO_HAS_MINIMUM_CORBA is enabled, it is enabled by default otherwise. Tue Apr 11 20:58:16 2000 Carlos O'Ryan * orbsvcs/orbsvcs/ESF/ESF_Copy_On_Read.cpp: * orbsvcs/orbsvcs/ESF/ESF_Delayed_Changes.cpp: * orbsvcs/orbsvcs/ESF/ESF_Immediate_Changes.cpp: The .i file name was incorrect, but only builds with inlining disabled would detect that. * orbsvcs/orbsvcs/CosEvent/CEC_ConsumerAdmin.h: * orbsvcs/orbsvcs/CosEvent/CEC_ConsumerAdmin.cpp: * orbsvcs/orbsvcs/CosEvent/CEC_SupplierAdmin.h: * orbsvcs/orbsvcs/CosEvent/CEC_SupplierAdmin.cpp: * orbsvcs/orbsvcs/ESF/ESF_Peer_Admin.h: * orbsvcs/orbsvcs/ESF/ESF_Peer_Admin.i: * orbsvcs/orbsvcs/ESF/ESF_Peer_Admin.cpp: * orbsvcs/orbsvcs/ESF/ESF_Proxy_Admin.h: * orbsvcs/orbsvcs/ESF/ESF_Proxy_Admin.i: * orbsvcs/orbsvcs/ESF/ESF_Proxy_Admin.cpp: * orbsvcs/orbsvcs/Event/EC_Basic_Factory.cpp: * orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.h: * orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.cpp: * orbsvcs/orbsvcs/Event/EC_Default_Factory.cpp: * orbsvcs/orbsvcs/Event/EC_Null_Factory.cpp: * orbsvcs/orbsvcs/Event/EC_ProxyConsumer.h: * orbsvcs/orbsvcs/Event/EC_ProxySupplier.h: * orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.cpp: * orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.cpp: * orbsvcs/orbsvcs/Event/EC_SupplierAdmin.cpp: * orbsvcs/orbsvcs/Event/EC_SupplierAdmin.h: * orbsvcs/orbsvcs/Event/EC_Trivial_Supplier_Filter.cpp: * orbsvcs/orbsvcs/Notify/Notify_Constraint_Interpreter.h: Workaround several MSVC 6 compiler bugs related to templates and traits. Nasty stuff. * orbsvcs/orbsvcs/RTEvent.dsp: Remove all the files that are not in the repo anymore. * orbsvcs/orbsvcs/AV.dsp: * orbsvcs/orbsvcs/CosConcurrency.dsp: * orbsvcs/orbsvcs/CosEvent.dsp: * orbsvcs/orbsvcs/CosLifeCycle.dsp: * orbsvcs/orbsvcs/CosNaming.dsp: * orbsvcs/orbsvcs/CosNotification.dsp: * orbsvcs/orbsvcs/CosProperty.dsp: * orbsvcs/orbsvcs/CosTime.dsp: * orbsvcs/orbsvcs/CosTrading.dsp: * orbsvcs/orbsvcs/DsLogAdmin.dsp: * orbsvcs/orbsvcs/RTEvent.dsp: * orbsvcs/orbsvcs/RTSched.dsp: * orbsvcs/orbsvcs/Svc_Utils.dsp: Disable precompiled headers for all this project files. We don't use them in ACE+TAO. Tue Apr 11 21:41:57 2000 Balachandran Natarajan * tao/GIOP_Message_Lite.cpp (TAO_GIOP_Message_Lite): * tao/GIOP_Message_Lite.h: * tao/GIOP_Message_Acceptors.{h,cpp,i}: Fixed a pending problem with multi-threaded servers dumping a core during shutdown. The actual problem was that these classes were caching TSS resources indirectly, and were getting destroyed long after the TSS resources are destroyed by the ORB. So, these classes allocate their own resources instead of depending on the ORB_Core. Tue Apr 11 17:57:48 2000 Carlos O'Ryan * tests/OctetSeq/test.idl: * tests/OctetSeq/test_i.h: * tests/OctetSeq/test_i.cpp: * tests/OctetSeq/client.cpp: Modified the test to check that alignment of doubles after a variable length octet sequence works ok. Tue Apr 11 14:35:57 2000 Carlos O'Ryan * Changed the RTEC and the CosEC to use the components defined in the ESF directory. In this pass i basically moved the classes from orbsvcs/Event/EC_* to orbsvcs/ESF/ESF_* But I also added components that simplify the implementation of the Consumer and Supplier admin classes. This new mini-framework is desgined to facilitate the task of implementing event services, such as the Real-time Event Service, the COS Event Service or the Notification Service. * orbsvcs/orbsvcs/ESF/ESF_Copy_On_Read.h: * orbsvcs/orbsvcs/ESF/ESF_Delayed_Changes.cpp: * orbsvcs/orbsvcs/ESF/ESF_Peer_Admin.cpp: * orbsvcs/orbsvcs/ESF/ESF_Peer_Admin.h: * orbsvcs/orbsvcs/ESF/ESF_Proxy_Admin.h: * orbsvcs/orbsvcs/ESF/ESF_Proxy_Admin.cpp: Fixed minor problems with the generic event service framework components. * orbsvcs/orbsvcs/ESF/ESF_Copy_On_Write.h: * orbsvcs/orbsvcs/ESF/ESF_Copy_On_Write.i: * orbsvcs/orbsvcs/ESF/ESF_Copy_On_Write.cpp: Add new iteration strategy to the framework. * orbsvcs/orbsvcs/CosEvent/CEC_ConsumerAdmin.h: * orbsvcs/orbsvcs/CosEvent/CEC_ConsumerAdmin.i: * orbsvcs/orbsvcs/CosEvent/CEC_ConsumerAdmin.cpp: * orbsvcs/orbsvcs/CosEvent/CEC_Default_Factory.cpp: * orbsvcs/orbsvcs/CosEvent/CEC_EventChannel.h: * orbsvcs/orbsvcs/CosEvent/CEC_EventChannel.i: * orbsvcs/orbsvcs/CosEvent/CEC_Factory.h: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPullConsumer.h: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPullConsumer.cpp: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPullSupplier.h: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPullSupplier.cpp: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushConsumer.h: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushConsumer.cpp: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushSupplier.h: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushSupplier.cpp: * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_ConsumerControl.h: * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_Pulling_Strategy.h: * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_SupplierControl.h: * orbsvcs/orbsvcs/CosEvent/CEC_SupplierAdmin.h: * orbsvcs/orbsvcs/CosEvent/CEC_SupplierAdmin.i: * orbsvcs/orbsvcs/CosEvent/CEC_SupplierAdmin.cpp: * orbsvcs/orbsvcs/Event/EC_Basic_Factory.cpp: * orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.h: * orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.i: * orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.cpp: * orbsvcs/orbsvcs/Event/EC_Default_Factory.cpp: * orbsvcs/orbsvcs/Event/EC_Event_Channel.h: * orbsvcs/orbsvcs/Event/EC_Event_Channel.i: * orbsvcs/orbsvcs/Event/EC_Event_Channel.cpp: * orbsvcs/orbsvcs/Event/EC_Factory.h: * orbsvcs/orbsvcs/Event/EC_Null_Factory.cpp: * orbsvcs/orbsvcs/Event/EC_ObserverStrategy.h: * orbsvcs/orbsvcs/Event/EC_Per_Supplier_Filter.h: * orbsvcs/orbsvcs/Event/EC_Per_Supplier_Filter.cpp: * orbsvcs/orbsvcs/Event/EC_ProxyConsumer.h: * orbsvcs/orbsvcs/Event/EC_ProxyConsumer.cpp: * orbsvcs/orbsvcs/Event/EC_ProxySupplier.h: * orbsvcs/orbsvcs/Event/EC_ProxySupplier.cpp: * orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.h: * orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.h: * orbsvcs/orbsvcs/Event/EC_SupplierAdmin.h: * orbsvcs/orbsvcs/Event/EC_SupplierAdmin.i: * orbsvcs/orbsvcs/Event/EC_SupplierAdmin.cpp: * orbsvcs/orbsvcs/Event/EC_Supplier_Filter.h: Use the new components to implement the ConsumerAdmin and SupplierAdmin interfaces. Reuse the code in the framework for the collections. * orbsvcs/orbsvcs/Event/EC_Command.h: * orbsvcs/orbsvcs/Event/EC_Command.i: * orbsvcs/orbsvcs/Event/EC_Command.cpp: * orbsvcs/orbsvcs/Event/EC_Concrete_Proxy_Set.h: * orbsvcs/orbsvcs/Event/EC_Concrete_Proxy_Set.i: * orbsvcs/orbsvcs/Event/EC_Concrete_Proxy_Set.cpp: * orbsvcs/orbsvcs/Event/EC_Copy_On_Write.h: * orbsvcs/orbsvcs/Event/EC_Copy_On_Write.i: * orbsvcs/orbsvcs/Event/EC_Copy_On_Write.cpp: * orbsvcs/orbsvcs/Event/EC_Proxy_Collection.h: * orbsvcs/orbsvcs/Event/EC_Proxy_Collection.i: * orbsvcs/orbsvcs/Event/EC_Proxy_Collection.cpp: * orbsvcs/orbsvcs/Event/EC_Worker.h: * orbsvcs/orbsvcs/Event/EC_Worker.i: * orbsvcs/orbsvcs/Event/EC_Worker.cpp: Removed, they are implemented in the ESF directory. * orbsvcs/tests/Event/Basic/Makefile: * orbsvcs/tests/Event/Performance/Makefile: * orbsvcs/tests/Event/lib/Makefile: * orbsvcs/CosEvent_Service/Makefile: * orbsvcs/orbsvcs/Makefile.CosEvent: * orbsvcs/orbsvcs/Makefile.RTEvent: Updated dependencies Tue Apr 11 16:00:00 2000 Kirthika Parameswaran * tao/orbconf.h: Commented out AMI aupport as default thus rectifying the mistake I committed when testing out the AMI and Smart Proxies combination. Thanks to Carlos O' Ryan for pointing this out. Tue Apr 11 11:32:03 2000 Chad Elliott * orbsvcs/tests/AVStreams/benchmark/run_test.pl orbsvcs/tests/CosEC_Multiple/run_test.pl orbsvcs/tests/CosEC_Multiple/run_test2.pl orbsvcs/tests/CosEvent/Basic/run_test.pl orbsvcs/tests/EC_Basic/run_test.pl orbsvcs/tests/EC_Custom_Marshal/run_test.pl orbsvcs/tests/EC_Mcast/run_test.pl orbsvcs/tests/EC_Multiple/run_test.pl orbsvcs/tests/EC_Throughput/run_test.pl orbsvcs/tests/Event/Basic/run_test.pl orbsvcs/tests/Event/Performance/run_test.pl orbsvcs/tests/Event_Latency/run_test.pl orbsvcs/tests/ImplRepo/run_test.pl orbsvcs/tests/Property/run_test.pl orbsvcs/tests/Simple_Naming/run_test.pl orbsvcs/tests/Time/run_test.pl orbsvcs/tests/Trading/run_test.pl tests/AMI/run_test.pl tests/CDR/run_test.pl tests/Connection_Purging/run_test.pl tests/DSI_Gateway/run_test.pl tests/DynAny_Test/run_test.pl tests/Endpoint_Per_Priority/run_test.pl tests/Explicit_Event_Loop/run_test.pl tests/Faults/run_test.pl tests/IORManipulation/run_test.pl tests/InterOp-Naming/run_test.pl tests/Interceptors/run_test.pl tests/Leader_Followers/run_test.pl tests/MT_Client/run_test.pl tests/MT_Server/run_test.pl tests/Multiple_Inheritance/run_test.pl tests/Native_Exceptions/run_test.pl tests/NestedUpcall/MT_Client_Test/run_test.pl tests/NestedUpcall/Simple/run_test.pl tests/NestedUpcall/Triangle_Test/run_test.pl tests/Nested_Event_Loop/run_test.pl tests/ORB_init/run_test.pl tests/OctetSeq/run_test.pl tests/POA/Deactivation/run_test.pl tests/POA/Destruction/run_test.pl tests/POA/Identity/run_test.pl tests/Param_Test/run_test.pl tests/Smart_Proxies/run_test.pl tests/Smart_Proxies/On_Demand/run_test.pl tests/Timed_Buffered_Oneways/run_test.pl tests/Timeout/run_test.pl Refactor duplicate code into ACEutils.pm Thanks Carlos. Tue Apr 11 09:02:33 2000 Ossama Othman * tao/corbafwd.h (TAO_ACCEPTOR_REGISTRY_OPEN_LOCATION_CODE, TAO_ORB_CORE_INIT_LOCATION_CODE): Added these new exception location codes. They are used in the TAO_Acceptor_Registry::open() and TAO_ORB_Core::init() methods, respectively. * tao/Exception.cpp (_info): Added information entries for the newly added TAO_ACCEPTOR_REGISTRY_OPEN_LOCATION_CODE and TAO_ORB_CORE_INIT_LOCATION_CODE exception location codes. Corrected typo: "EENOTSUP" should be "ENOTSUP." * tao/Acceptor_Registry.cpp (open): Updated all exceptions to utilize new TAO_ACCEPTOR_REGISTRY_OPEN_LOCATION_CODE location code to improve exception messages. (open_default): Return error if no default endpoints were opened. This can occur if all loaded pluggable protocols require an explicit endpoint to be provided. [Bug 491] * tao/ORB_Core.cpp (init): Updated all exceptions to utilize new TAO_ORB_CORE_INIT_LOCATION_CODE location code to improve exception messages. [Bug 487] * tao/IIOP_Profile.cpp (decode): * tao/SHMIOP_Profile.cpp (decode): * tao/UIOP_Profile.cpp (decode): Cleaned up error message. Tue Apr 11 08:05:37 2000 Chad Elliott * orbsvcs/tests/Trading/export_test.cpp Fixed compilation problem on some platforms. Mon Apr 10 23:00:00 2000 Kirthika Parameswaran * rules.tao.GNU: Removed the verbose declaration of smart proxies been disabled during a build. * tao/IIOP_Connector.{h,cpp}: * tao/UIOP_Connector.{h,cpp}: * tao/SHMIOP_Connector.{h,cpp}: Fixed the build warnings and errors due to adding TAO_HAS_MINIMUM_CONNECTION_CACHING definition. Mon Apr 10 17:50:41 2000 Carlos O'Ryan * tao/Makefile: Update dependencies * tao/Object_Loader.cpp: Add missing template instantiation * tao/GIOP_Message_Lite.cpp: Add minor comment for Bala Mon Apr 10 16:21:40 2000 Carlos O'Ryan * tests/Object_Loader/driver.dsp: * tests/Object_Loader/Test_DLL.dsp: Fixed the project files, now the test builds on both Unix and NT. Mon Apr 10 16:11:31 2000 Carlos O'Ryan * tests/Object_Loader/Makefile: Fixed dependencies * tests/Object_Loader/Loader.cpp: * tests/Object_Loader/driver.cpp: Fixed several hacks for NT. Will have to do more fixing to get NT to work again, but i think I know how to do it now. Mon Apr 10 17:00:00 2000 Kirthika Parameswaran * tao/orbconf.h: Diabled smart proxies by default. * rules.tao.GNU: Set TAO_HAS_SMART_PROXIES flag if $smart_proxies is set. * tests/Makefile: Only if smart proxies feature is enabled will the Smart_Proxies test be included in the build. Mon Apr 10 13:17:41 2000 Carlos O'Ryan * tao/Makefile: * tao/TAO.dsp: * tao/TAO_Static.dsp: * tao/ORB.h: * tao/ORB.cpp: * tao/Object_Loader.h: * tao/Object_Loader.i: * tao/Object_Loader.cpp: New style for object references, the application can invoke orb->string_to_object ("DLL:....") The purpose of this feature is twofold: - Allow application developers to choose, very late in the development cycle, if they want to dynamically load a service. For example they can use resolve_initial_references to resolve the service, and then use -ORBInitRef Service=DLL:... to dynamically load it or -ORBInitRef Service=corbaloc:... to use a remote version. - It can be used to dynamically load ORB components, such as the POA, the DynamicAnys, the IORManipulation interface, etc. All these components are accessed through the resolve_initial_references interface, so they could be loaded using the DLL-style IORs. * tests/Makefile: * tests/Object_Loader/Loader.cpp: * tests/Object_Loader/Loader.h: * tests/Object_Loader/Loader.i: * tests/Object_Loader/Makefile: * tests/Object_Loader/OLT_Export.h: * tests/Object_Loader/Object_Loader.dsw: * tests/Object_Loader/Test.idl: * tests/Object_Loader/Test_DLL.dsp: * tests/Object_Loader/Test_i.cpp: * tests/Object_Loader/Test_i.h: * tests/Object_Loader/Test_i.i: * tests/Object_Loader/driver.cpp: * tests/Object_Loader/driver.dsp: * tests/Object_Loader/svc.conf: Add a very simple test that creates multiple ORBs and loads a different object into each one. Mon Apr 10 13:41:51 2000 Nanbor Wang * docs/compiler.html: Removed the entry about -Gc flag (compile marshaling.) * examples/OBV/Typed_Events/client.dsp: * examples/OBV/Typed_Events/server.dsp: Removed -Gc flag from TAO_IDL command. Compiled marshaling is now the only type of marshaling supported by TAO, so there's no longer any need for the -Gc option. Mon Apr 10 09:11:43 2000 Ossama Othman * tao/IIOP_Acceptor.cpp (hostname): Simplified this method using the patch suggested by Rich Seibel . Fri Apr 7 11:12:07 2000 Chad Elliott * tests/AMI/run_test.pl, tests/CDR/run_test.pl, tests/Connection_Purging/run_test.pl, tests/DSI_Gateway/run_test.pl, tests/DynAny_Test/run_test.pl, tests/Endpoint_Per_Priority/run_test.pl, tests/Explicit_Event_Loop/run_test.pl, tests/Faults/run_test.pl, tests/IORManipulation/run_test.pl, tests/InterOp-Naming/run_test.pl, tests/Interceptors/client.cpp tests/Interceptors/run_test.pl, tests/Leader_Followers/run_test.pl, tests/MT_Client/run_test.pl, tests/POA/Deactivation/run_test.pl, tests/POA/Destruction/run_test.pl, tests/POA/Identity/run_test.pl, tests/MT_Server/run_test.pl, tests/Multiple_Inheritance/run_test.pl, tests/Native_Exceptions/run_test.pl, tests/NestedUpcall/MT_Client_Test/run_test.pl, tests/NestedUpcall/Simple/run_test.pl, tests/NestedUpcall/Triangle_Test/run_test.pl, tests/Nested_Event_Loop/run_test.pl, tests/ORB_init/run_test.pl, tests/OctetSeq/run_test.pl, tests/Param_Test/run_test.pl, tests/Smart_Proxies/run_test.pl, tests/Smart_Proxies/On_Demand/run_test.pl, tests/Timed_Buffered_Oneways/run_test.pl, tests/Timeout/run_test.pl, orbsvcs/tests/AVStreams/benchmark/run_test.pl, orbsvcs/tests/CosEC_Multiple/CosEC_Multiple.cpp, orbsvcs/tests/CosEC_Multiple/run_test.pl, orbsvcs/tests/CosEC_Multiple/run_test2.pl, orbsvcs/tests/CosEvent/Basic/run_test.pl, orbsvcs/tests/EC_Basic/run_test.pl, orbsvcs/tests/EC_Custom_Marshal/run_test.pl, orbsvcs/tests/EC_Mcast/run_test.pl, orbsvcs/tests/EC_Multiple/run_test.pl, orbsvcs/tests/EC_Throughput/run_test.pl, orbsvcs/tests/Event/Basic/run_test.pl, orbsvcs/tests/Event/Performance/run_test.pl, orbsvcs/tests/Event_Latency/run_test.pl, orbsvcs/tests/ImplRepo/run_test.pl, orbsvcs/tests/Property/run_test.pl, orbsvcs/tests/Simple_Naming/run_test.pl, orbsvcs/tests/Time/run_test.pl, orbsvcs/tests/Trading/export_test.cpp, orbsvcs/tests/Trading/run_test.pl Added a -chorus option to allow running the tests on a chorus target. Modified some test c++ code to give options to set input files. Tue Apr 4 10:45:00 2000 Chris Gill * orbsvcs/tests/Makefile: added Sched directory Mon Apr 3 23:19:28 2000 Douglas C. Schmidt * orbsvcs/Naming_Service/Makefile.bor (MAKEFILES): Include NT_Naming_Service.bor in the Makefile for BCB. Thanks to Christopher Kohlhoff and Thaddeus Olczyk for this fix. Mon Apr 03 16:06:55 2000 David L. Levine * rules.TAO.GNU: default to not enabling smart proxy support. Mon Apr 03 12:52:51 2000 David L. Levine * tao/IIOP_Connector.cpp,UIOP_Connector.cpp,SHMIOP_Connector.cpp: commented out some template instantiations, temporarily to get it to build on LynxOS. Kirthika, please fix ASAP. Mon Apr 3 12:20:00 2000 Chris Gill * orbsvcs/orbsvcs/Sched/DynSched.cpp, orbsvcs/tests/Sched/DynSched_Test.cpp: fixed test so it compiles with the new RtecScheduler IDL interface. Mon Apr 3 05:20:00 2000 Kirthika Parameswaran * TAO_IDL/driver/drv_args.cpp: Added -Gsp option to generate smart proxy classes. * TAO_IDL/include/idl_global.h: Added member and declared its accessor and mutator methods. * TAO_IDL/util/utl_global.cpp: Defined the accessor and mutator methods for and also set it to I_FALSE in the constructor of IDL_GlobalData. * TAO_IDL/be/be_visitor_interface/interface_cs.cpp: Modified <_unchecked_narrow> to return the default proxy when the smart proxy framework doesnt exist. * TAO_IDL/be/be_visitor_interface/smart_proxy_c{h,s}.cpp: * TAO_IDL/be/be_visitor_operation/smart_proxy_c{h,s}.cpp: Added a check for the smart proxy generation flag. * tao/orbconf.h: Added a flag called TAO_HAS_SMART_PROXIES which is 0 by default and disabled for MINIMUM_CORBA and can be enabled by setting it to 1. * tao/corba.h: Added a check for TAO_HAS_SMART_PROXIES before inclusion of the Smart Proxies header file. * tao/corbafwd.h: Added forward class declarations for TAO_Smart_Proxy_Base. * MessagingC.{h,cpp}: Added the ReplyHandler related smart proxy classes under the TAO_HAS_SMART_PROXIES check. This is needed because the AMI handlers inherit from the abstract base class Messaging:ReplyHandler and so its necessary to generate its Smart_Proxy_Base to fit into the design of the Smart Proxies. Thanks to Carlos O'Ryan for reporting this bug. * rules.tao.GNU: Added $(smart_proxies) to be able to check the TAO_HAS_SMART_PROXIES flag and thus enable the Smart Proxies test into the build/test suite. * tests/Smart_Proxies/Makefile: * tests/Smart_Proxies/On_Demand/Makefile: Added the -Gsp option to generate the smart proxy classes. * tests/Smart_Proxies/test.idl: Filled in some comments about the interface. * docs/compiler.html: Added an entry for the -Gsp option. * docs/Smart_Proxies.html: updated the documentation with usage options. * tao/orbconf.h: Added TAO_HAS_MINIMUM_CONNECTION_CACHING_STRATEGY flag which is enabled for MINIMUM_CORBA. Note this flag is kept separate from ACE_HAS_BROKEN_EXTENDED_TEMPLATES because when we (if ever) stop supporting compilers which dont support templates this flag could be removed and one wouldnt have to worryabout its dependencies on other flags. * tao/IIOP_connector.{h,cpp}: * tao/UIOP_Connector.{h,cpp}: * tao/SHMIOP_Connector.{h,cpp}: Added check for TAO_HAS_MINIMUM_CONNECTION_CACHING_STRATEGY. Thanks to Irfan for brainstorming on this issue. Sun Apr 2 16:10:20 2000 Carlos O'Ryan * orbsvcs/orbsvcs/Makefile: The TAO_ORBSVCS macro was defined in the wrong spot, before minimum_corba was set. Unfortunately this resulted in attempts to build services that cannot be built when minimum_corba is defined. Sun Apr 2 16:00:00 2000 Kirthika Parameswaran * tao/Smart_Proxies.h: Defined the destructor of TAO_Smart_Proxy_Base to be virtual to ward off g++ compiler warnings. Sun Apr 2 15:13:41 2000 Balachandran Natarajan * tao/GIOP_Message_Base.cpp (dump_msg): Added support to dump GIOP messages. Thanks to Carlos for pointing out that I had missed this. Sun Apr 2 12:43:59 2000 Carlos O'Ryan * orbsvcs/examples/Notify/Filter/Makefile: * orbsvcs/examples/Notify/Subscribe/Makefile: Add more missing libraries to the LDLIBS macro Sun Apr 2 12:14:56 2000 Carlos O'Ryan * orbsvcs/orbsvcs/Makefile.ETCL: * orbsvcs/orbsvcs/ETCL/README: * orbsvcs/orbsvcs/ETCL/ETCL.ll: * orbsvcs/orbsvcs/ETCL/ETCL.yy: * orbsvcs/orbsvcs/ETCL/ETCL_Constraint.cpp: * orbsvcs/orbsvcs/ETCL/ETCL_Constraint.h: * orbsvcs/orbsvcs/ETCL/ETCL_Constraint.i: * orbsvcs/orbsvcs/ETCL/ETCL_l.cpp: * orbsvcs/orbsvcs/ETCL/ETCL_l.cpp.diff: * orbsvcs/orbsvcs/ETCL/ETCL_y.cpp: * orbsvcs/orbsvcs/ETCL/ETCL_y.h: * orbsvcs/orbsvcs/ETCL/etcl_export.h: A simple parser and classes to build an abstract syntax tree for the Extended Trader Constraint Language. This is the filtering language that both the Notification and Logging Service require. I intended to use it in the RTEC too, but it probably won't work for that case. * orbsvcs/orbsvcs/Makefile.ESF: * orbsvcs/orbsvcs/ESF/ESF_Busy_Lock.cpp: * orbsvcs/orbsvcs/ESF/ESF_Busy_Lock.h: * orbsvcs/orbsvcs/ESF/ESF_Busy_Lock.i: * orbsvcs/orbsvcs/ESF/ESF_Copy_On_Read.cpp: * orbsvcs/orbsvcs/ESF/ESF_Copy_On_Read.h: * orbsvcs/orbsvcs/ESF/ESF_Copy_On_Read.i: * orbsvcs/orbsvcs/ESF/ESF_Defaults.h: * orbsvcs/orbsvcs/ESF/ESF_Delayed_Changes.cpp: * orbsvcs/orbsvcs/ESF/ESF_Delayed_Changes.h: * orbsvcs/orbsvcs/ESF/ESF_Delayed_Changes.i: * orbsvcs/orbsvcs/ESF/ESF_Delayed_Command.cpp: * orbsvcs/orbsvcs/ESF/ESF_Delayed_Command.h: * orbsvcs/orbsvcs/ESF/ESF_Delayed_Command.i: * orbsvcs/orbsvcs/ESF/ESF_Immediate_Changes.cpp: * orbsvcs/orbsvcs/ESF/ESF_Immediate_Changes.h: * orbsvcs/orbsvcs/ESF/ESF_Immediate_Changes.i: * orbsvcs/orbsvcs/ESF/ESF_Peer_Admin.cpp: * orbsvcs/orbsvcs/ESF/ESF_Peer_Admin.h: * orbsvcs/orbsvcs/ESF/ESF_Peer_Admin.i: * orbsvcs/orbsvcs/ESF/ESF_Peer_Workers.cpp: * orbsvcs/orbsvcs/ESF/ESF_Peer_Workers.h: * orbsvcs/orbsvcs/ESF/ESF_Peer_Workers.i: * orbsvcs/orbsvcs/ESF/ESF_Proxy_Admin.cpp: * orbsvcs/orbsvcs/ESF/ESF_Proxy_Admin.h: * orbsvcs/orbsvcs/ESF/ESF_Proxy_Admin.i: * orbsvcs/orbsvcs/ESF/ESF_Proxy_Collection.cpp: * orbsvcs/orbsvcs/ESF/ESF_Proxy_Collection.h: * orbsvcs/orbsvcs/ESF/ESF_Proxy_Collection.i: * orbsvcs/orbsvcs/ESF/ESF_Proxy_List.cpp: * orbsvcs/orbsvcs/ESF/ESF_Proxy_List.h: * orbsvcs/orbsvcs/ESF/ESF_Proxy_List.i: * orbsvcs/orbsvcs/ESF/ESF_Proxy_RB_Tree.cpp: * orbsvcs/orbsvcs/ESF/ESF_Proxy_RB_Tree.h: * orbsvcs/orbsvcs/ESF/ESF_Proxy_RB_Tree.i: * orbsvcs/orbsvcs/ESF/ESF_Shutdown_Proxy.cpp: * orbsvcs/orbsvcs/ESF/ESF_Shutdown_Proxy.h: * orbsvcs/orbsvcs/ESF/ESF_Shutdown_Proxy.i: * orbsvcs/orbsvcs/ESF/ESF_Worker.cpp: * orbsvcs/orbsvcs/ESF/ESF_Worker.h: * orbsvcs/orbsvcs/ESF/ESF_Worker.i: * orbsvcs/orbsvcs/ESF/esf_export.h: I'm starting the implementation of a framework for event services. Many of the current classes have been moved out of the RTEC, and have been validated when used in the implementation of the CosEC. We want to use the same framework for the notification service and to make it easy for users to implement their own event services. It is possible that the framework will help with typed events and similar things. Below a more detailed description: * orbsvcs/orbsvcs/Makefile: Add orbsvcs/orbsvcs/ESF to the include path, because some compilers need that for template instantiation. * orbsvcs/orbsvcs/ESF/ESF_Busy_Lock.h: * orbsvcs/orbsvcs/ESF/ESF_Busy_Lock.i: * orbsvcs/orbsvcs/ESF/ESF_Busy_Lock.cpp: An ACE_Guard-compatible class to implement Delayed_Commands * orbsvcs/orbsvcs/ESF/ESF_Copy_On_Read.cpp: * orbsvcs/orbsvcs/ESF/ESF_Copy_On_Read.h: * orbsvcs/orbsvcs/ESF/ESF_Copy_On_Read.i: Realize the Copy_On_Read pattern for iterations and event dispatching * orbsvcs/orbsvcs/ESF/ESF_Defaults.h: Define the default configuration values * orbsvcs/orbsvcs/ESF/ESF_Delayed_Changes.cpp: * orbsvcs/orbsvcs/ESF/ESF_Delayed_Changes.h: * orbsvcs/orbsvcs/ESF/ESF_Delayed_Changes.i: Realize the Delayed_Changes pattern for iterations and event dispatching * orbsvcs/orbsvcs/ESF/ESF_Delayed_Command.cpp: * orbsvcs/orbsvcs/ESF/ESF_Delayed_Command.h: * orbsvcs/orbsvcs/ESF/ESF_Delayed_Command.i: Implement the Command objects used in Delayed_Changes * orbsvcs/orbsvcs/ESF/ESF_Immediate_Changes.cpp: * orbsvcs/orbsvcs/ESF/ESF_Immediate_Changes.h: * orbsvcs/orbsvcs/ESF/ESF_Immediate_Changes.i: Realize the Immediate_Changes pattern for iterations and event dispatching * orbsvcs/orbsvcs/ESF/ESF_Peer_Admin.cpp: * orbsvcs/orbsvcs/ESF/ESF_Peer_Admin.h: * orbsvcs/orbsvcs/ESF/ESF_Peer_Admin.i: Implement a Proxy Admin class that 'matches' suppliers and consumers (Peers) * orbsvcs/orbsvcs/ESF/ESF_Peer_Workers.cpp: * orbsvcs/orbsvcs/ESF/ESF_Peer_Workers.h: * orbsvcs/orbsvcs/ESF/ESF_Peer_Workers.i: Generic workers to implement Peer_Admin * orbsvcs/orbsvcs/ESF/ESF_Proxy_Admin.cpp: * orbsvcs/orbsvcs/ESF/ESF_Proxy_Admin.h: * orbsvcs/orbsvcs/ESF/ESF_Proxy_Admin.i: Implement a generic Admin interface for an Event Service * orbsvcs/orbsvcs/ESF/ESF_Proxy_Collection.cpp: * orbsvcs/orbsvcs/ESF/ESF_Proxy_Collection.h: * orbsvcs/orbsvcs/ESF/ESF_Proxy_Collection.i: Define the interface used for the Proxy collections * orbsvcs/orbsvcs/ESF/ESF_Proxy_List.cpp: * orbsvcs/orbsvcs/ESF/ESF_Proxy_List.h: * orbsvcs/orbsvcs/ESF/ESF_Proxy_List.i: Implement a concrete Proxy collection, based on a linked list * orbsvcs/orbsvcs/ESF/ESF_Proxy_RB_Tree.cpp: * orbsvcs/orbsvcs/ESF/ESF_Proxy_RB_Tree.h: * orbsvcs/orbsvcs/ESF/ESF_Proxy_RB_Tree.i: Implement a concrete Proxy collection, based on a RB-tree * orbsvcs/orbsvcs/ESF/ESF_Shutdown_Proxy.cpp: * orbsvcs/orbsvcs/ESF/ESF_Shutdown_Proxy.h: * orbsvcs/orbsvcs/ESF/ESF_Shutdown_Proxy.i: A worker object to invoke shutdown() on the proxies * orbsvcs/orbsvcs/ESF/ESF_Worker.cpp: * orbsvcs/orbsvcs/ESF/ESF_Worker.h: * orbsvcs/orbsvcs/ESF/ESF_Worker.i: Define the Worker interface * orbsvcs/orbsvcs/ETCL/README: A parser for the Extended Trader Constraint Language. * orbsvcs/orbsvcs/ETCL/ETCL.ll: The flex(1) file for the ETCL language * orbsvcs/orbsvcs/ETCL/ETCL.yy: The bison(1) file for the ETCL language * orbsvcs/orbsvcs/ETCL/ETCL_Constraint.h: * orbsvcs/orbsvcs/ETCL/ETCL_Constraint.i: * orbsvcs/orbsvcs/ETCL/ETCL_Constraint.cpp: The parser generates an abstract syntax tree, the nodes in the tree are implemented here. We use the familiar Visitor pattern to traverse the tree, only the Visitor interface is defined, applications must provide interesting ones. * orbsvcs/orbsvcs/ETCL/ETCL_l.cpp: * orbsvcs/orbsvcs/ETCL/ETCL_y.h: * orbsvcs/orbsvcs/ETCL/ETCL_y.cpp: * orbsvcs/orbsvcs/ETCL/ETCL_l.cpp.diff: The generated files with the required patches. Fri Mar 31 21:01:59 2000 Carlos O'Ryan * orbsvcs/examples/Notify/Filter/Makefile: * orbsvcs/examples/Notify/Subscribe/Makefile: Fixed typo in LDLIBS macro. * orbsvcs/orbsvcs/Makefile: * orbsvcs/orbsvcs/Makefile.av: AV does not require the trading service * orbsvcs/orbsvcs/AV/sfp.cpp: Fixed warning about unused ACE_TRY block * orbsvcs/examples/Makefile: * orbsvcs/examples/Log/Makefile: * orbsvcs/examples/Log/Client/Makefile: * orbsvcs/examples/Log/test/Makefile: * orbsvcs/tests/Makefile: * orbsvcs/tests/Sched/Makefile: * orbsvcs/tests/Concurrency/Makefile: Several Makefiles did not list all the directories or there was no Makefile for some templates. * orbsvcs/examples/Log/test/BasicLog_Test.cpp: Fixed several minor problems, they had not been detected before because the code was not beign compiled. Sat Apr 1 22:10:41 2000 Darrell Brunsch * orbsvcs/ImplRepo_Service/ImplRepo_i.cpp: * orbsvcs/ImplRepo_Service/Options.cpp: * orbsvcs/ImplRepo_Service/Repository.cpp: * orbsvcs/ImplRepo_Service/Repository.h: * orbsvcs/ImplRepo_Service/tao_imr_i.cpp: * orbsvcs/ImplRepo_Service/tao_imr_i.h: Added patches submitted by Larry Peacock to finish the Environment Variable support in the Implementation Repository. [Bug 196] Sat Apr 1 12:50:33 2000 Balachandran Natarajan * tao/GIOP_Message_Lite.cpp: * tao/GIOP_Server_Request.cpp: Fixed compiler errors in Minimum CORBA build. Sat Apr 1 12:09:56 2000 Balachandran Natarajan * tao/GIOP_Message_Lite.cpp (write_reply_header): Fixed a warning in Linux EGCS build. Sat Apr 1 10:20:12 2000 Pradeep Gore * orbsvcs/Notify_Service/Notify_Service.cpp: Moved the call to in the correct place to detect if the naming service is available or not. Fri Mar 31 20:59:31 2000 Irfan Pyarali * tao/Object_Adapter.cpp (activate_poa): AdapterNonExistent exceptions raised while processing a request should be caught and converted into OBJECT_NOT_EXIST. Remember that AdapterNonExistent is a server side exception and the client does not know about this exception. If this conversion does not take place, it will get handled as a UNKNOWN exception on the client. Thanks to Carlos for pointing this out. Fri Mar 31 20:30:00 2000 Kirthika Parameswaran * TAO_IDL/be/be_visitor_interface/smart_proxy_ch.cpp: Added a <_proxy_> member per TAO_interface_Smart_PRoxy_Base so that the got be narrowed and stored for future invocations. Also added generation of export macros for the smart proxy classes. Thanks to Aniruddha Gokhale for pointing this out. * TAO_IDL/be/be_visitor_interface/smart_proxy_cs.cpp (get_proxy): Changed the implmentation of this method to overcome the problem faced when using ACE_dynamic_cast on some compilers. Now <_unchecked_narrow> is used for the downcasting. Also it was necessary to unregister the smart proxy factory so it into get into an infinite loop of creating smart proxies. This doesnt harm the design in any way because the factory is unregistered only during the first invocation of the smart proxy. And anyways, to use create a smart proxy its necessary to create a smart proxy factory. * tao/TAO.dsp: * tao/TAO_Static.dsp: Added Smart_Proxies.{i,h,cpp} to both these workspaces. * docs/Smart_Proxies.html: Updated the documentation. Fri Mar 31 18:36:34 2000 Balachandran Natarajan * tao/GIOP_Message_Accept_State.cpp (write_reply_header): * tao/GIOP_Message_Accept_State.h: * tao/GIOP_Message_Accept_State.i: * tao/GIOP_Message_Acceptors.cpp: * tao/GIOP_Message_Acceptors.h: * tao/GIOP_Message_Acceptors.i: * tao/GIOP_Message_Base.h: * tao/GIOP_Message_Base.cpp: * tao/GIOP_Message_Connectors.cpp: * tao/GIOP_Message_Connectors.h: * tao/GIOP_Message_Lite.cpp: * tao/GIOP_Message_Lite.h: * tao/GIOP_Server_Request.h: * tao/GIOP_Server_Request.cpp: * tao/GIOP_Utils.cpp: * tao/GIOP_Utils.h: * tao/IIOP_Connect.h: * tao/Pluggable_Messaging.h: * tao/Pluggable_Messaging_Utils.h: * tao/Pluggable_Messaging_Utils.i: Added a new method by name write_reply_header () to the pluggable messaging interface. Changes in other files are for implementation and proper usage of this method within our GIOP implementation. This is in line with Carlos's suggestion. I have not got around to address his other comments. Fri Mar 31 08:15:39 2000 David L. Levine * TAO_IDL/be/be_visitor_interface/smart_proxy_ch.cpp: removed extraneous unprintable character in an #include directive. Thanks to Andy for reporting this. Fri Mar 31 03:27:28 2000 Nanbor Wang * orbsvcs/orbsvcs/Makefile.RTEvent (ACE_SHLIBS): Changed library name RTSched to TAO_RTSched. Thu Mar 30 00:20:00 2000 Kirthika Parameswaran * TAO/tao/Smart_Proxies.{h,i,cpp}: A new class TAO_Smart_Proxy_Base was added which is the base class for all the smart proxy interface base classes and contains the member. * TAO_IDL/be/be_visitor_interface/smart_proxy_ch.cpp: * TAO_IDL/be/be_visitor_interface/smart_proxy_cs.cpp: Added method which downcasts the CORBA_Object member of TAO_Smart_Proxy_Base to the appropriate proxy interface. Added a default constructor definition and removed the previously defined constructor. * TAO_IDL/be/be_visitor_operation/smart_proxy_cs.cpp: Added delegation of every operation to the method. * TAO_IDL/be_include/be_type.h: * TAO_IDL/be/be_type.cpp (nested_sp_type_name): Added a nested name generation method for smart proxy base. classes and also put the common code into a new method . * tao/Makefile: Added Smart_Proxies entry * tao/corba.h: Included Smart_PRoxies.h * tao/Smart_proxies.{h,i,cpp}: Contains the TAO_Smart_Proxy_Base class. * tests/Smart_Proxies/Smart_Proxy_Impl.cpp: * tests/Smart_Proxies/On_Demand/Smart_Proxy_Impl.cpp: * tests/Smart_Proxies/Collocation/Smart_Proxy_Impl.cpp: Added delegation of the real proxy to TAO_Smart_Proxy_Base instead of the local proxy base class. * docs/Smart_Proxies.html: Added a paragraph about this addition to the Smart Proxies in TAO. The above changes are a modified version of the implementation inheritance changes contributed by Brian Wallis . Thanks to Brian Wallis for this wonderful contibution towards the Smart Proxies feature in TAO. Thu Mar 30 15:45:25 2000 Irfan Pyarali * tao/SHMIOP_Acceptor.cpp (TAO_SHMIOP_Acceptor::~TAO_SHMIOP_Acceptor): * tao/IIOP_Acceptor.cpp (TAO_IIOP_Acceptor::~TAO_IIOP_Acceptor): * tao/UIOP_Acceptor.cpp (TAO_UIOP_Acceptor::~TAO_UIOP_Acceptor): Make sure we close down before we start destroying the strategies. This will make sure that the base class will not try to access the destroyed strategies in its destructor. TAO_UIOP_Acceptor::close() needed a little modification that would make it ok to call it multiple times. Thanks to Sangwoo Jin for reporting this bug. Thu Mar 30 12:16:25 2000 Pradeep Gore * orbsvcs/Notify_Service/Notify_Service.{h.cpp}: Added several startup options to the Notify Service. See the README for details. Thanks to Wei Chiang for contributing these options to the Notify_Service. * orbsvcs/Notify_Service/README: Updated the README. Wed Mar 29 12:57:33 2000 Carlos O'Ryan * orbsvcs/examples/Notify/Filter/Makefile: * orbsvcs/examples/Notify/Subscribe/Makefile: Updated dependencies. * orbsvcs/orbsvcs/Makefile: Re-order some builds. * orbsvcs/orbsvcs/Makefile.CosConcurrency: * orbsvcs/orbsvcs/Makefile.CosEvent: * orbsvcs/orbsvcs/Makefile.CosLifeCycle: * orbsvcs/orbsvcs/Makefile.CosNaming: * orbsvcs/orbsvcs/Makefile.CosNotification: * orbsvcs/orbsvcs/Makefile.CosProperty: * orbsvcs/orbsvcs/Makefile.CosTime: * orbsvcs/orbsvcs/Makefile.CosTrading: * orbsvcs/orbsvcs/Makefile.DsLogAdmin: * orbsvcs/orbsvcs/Makefile.RTEvent: * orbsvcs/orbsvcs/Makefile.RTSched: * orbsvcs/orbsvcs/Makefile.Svc_Utils: * orbsvcs/orbsvcs/Makefile.av: Add -L$(TAO_ROOT)/orbsvcs/orbsvcs to the link line. * performance-tests/Latency/Makefile: Use the standard ami=1 configuration flag instead of AMI=1 * performance-tests/Latency/ami-throughput-client.cpp: Don't use work_pending * performance-tests/Latency/server.cpp: Improved cleanup code. Wed Mar 29 14:56:29 2000 Nanbor Wang * tao/orbconf.h: Fixed a TAO_HAS_MINIMUM_CORBA check that I missed last time. Tue Mar 28 19:22:33 2000 Nanbor Wang * rules.tao.GNU: Updated the definition of TAO_HAS_MINIMUM_CORBA. Tue Mar 28 19:15:25 2000 Jeff Parsons * tao/DynAnyC.{h,i,cpp}: Found a full class definition in the .h file that had been around since the file's creation - my fault. Tue Mar 28 16:53:07 2000 Carlos O'Ryan * tao/corbafwd.h: * tao/POA_CORBA.h: Fixed a couple of missing defined(TAO_HAS_MINIMUM_CORBA) Tue Mar 28 16:05:20 2000 Carlos O'Ryan * orbsvcs/tests/Event/Event.dsw: * orbsvcs/tests/Event/Basic/Basic.dsw: Add new projects to the workspaces Tue Mar 28 15:58:36 2000 Carlos O'Ryan * orbsvcs/examples/Makefile: * orbsvcs/examples/Notify/Makefile: * orbsvcs/examples/Notify/Filter/Filter.cpp: * orbsvcs/examples/Notify/Filter/Makefile: * orbsvcs/examples/Notify/Subscribe/Makefile: * orbsvcs/orbsvcs/Notify/Notify_EventChannel_i.h: * orbsvcs/orbsvcs/Notify/Notify_Proxy_T.h: * orbsvcs/orbsvcs/Notify/Notify_PushSupplier.h: * orbsvcs/orbsvcs/Notify/Notify_QoSAdmin_i.cpp: * orbsvcs/orbsvcs/Notify/Notify_QoSAdmin_i.h: * orbsvcs/orbsvcs/Notify/Notify_Resource_Manager.cpp: * orbsvcs/orbsvcs/Notify/Notify_Resource_Manager.h: * orbsvcs/orbsvcs/Notify/Notify_SequenceProxyPushConsumer_i.cpp: * orbsvcs/orbsvcs/Notify/Notify_SequenceProxyPushSupplier_i.cpp: * orbsvcs/orbsvcs/Notify/Notify_SequenceProxyPushSupplier_i.h: * orbsvcs/orbsvcs/Notify/Notify_StructuredProxyPushConsumer_i.cpp: * orbsvcs/orbsvcs/Notify/Notify_StructuredProxyPushSupplier_i.cpp: * orbsvcs/orbsvcs/Notify/Notify_StructuredPushConsumer.cpp: * orbsvcs/orbsvcs/Notify/Notify_StructuredPushConsumer.h: * orbsvcs/orbsvcs/Notify/Notify_StructuredPushSupplier.cpp: * orbsvcs/orbsvcs/Notify/Notify_StructuredPushSupplier.h: * orbsvcs/orbsvcs/Notify/Notify_SupplierAdmin_i.cpp: * orbsvcs/orbsvcs/Notify/Notify_SupplierAdmin_i.h: * orbsvcs/orbsvcs/Notify/Notify_Types.cpp: * orbsvcs/orbsvcs/Notify/Notify_Types.h: Another bunch of @@ comments for Pradeep. Tue Mar 28 14:40:54 2000 Carlos O'Ryan * tao/GIOP_Message_Accept_State.h: * tao/GIOP_Message_Accept_State.i: * tao/GIOP_Message_Accept_State.cpp: * tao/GIOP_Message_Acceptors.h: * tao/GIOP_Message_Acceptors.i: * tao/GIOP_Message_Acceptors.cpp: * tao/GIOP_Message_Base.h: * tao/GIOP_Message_Base.i: * tao/GIOP_Message_Base.cpp: * tao/GIOP_Message_Connectors.h: * tao/GIOP_Message_Connectors.i: * tao/GIOP_Message_Connectors.cpp: * tao/GIOP_Message_Headers.h: * tao/GIOP_Message_Headers.i: * tao/GIOP_Message_Headers.cpp: * tao/GIOP_Message_Lite.h: * tao/GIOP_Message_Lite.i: * tao/GIOP_Message_Lite.cpp: * tao/GIOP_Message_State.h: * tao/GIOP_Message_State.i: * tao/GIOP_Message_State.cpp: * tao/GIOP_Server_Request.h: * tao/GIOP_Server_Request.i: * tao/GIOP_Server_Request.cpp: * tao/GIOP_Utils.h: * tao/GIOP_Utils.cpp: * tao/Pluggable_Messaging.h: * tao/Pluggable_Messaging.i: * tao/Pluggable_Messaging.cpp: * tao/Pluggable_Messaging_Utils.h: * tao/target_specification.h: * tao/target_specification.i: * tao/target_specification.cpp: Another pass making a code review for Bala. Tue Mar 28 14:29:05 2000 Jeff Parsons * TAO_IDL/be/be_visitor_exception/any_op_cs.cpp: Added code to deal with the repo id in the >>= operator. The corresponding stream operators insert the repo id, but don't extract it. Thanks to Carlos for suggesting this approach. Mon Mar 27 23:30:26 2000 Nanbor Wang * tao/orbconf.h: Changed the following macro definitions to be 0 or 1 so users can modify the configuration in their config.h files. (TAO_HAS_MINIMUM_CORBA): Default to 0. (TAO_HAS_INTERCEPTORS): Default to 1 when TAO_HAS_MINIMUM_CORBA==0, otherwise, default to 0. (TAO_NO_IOR_TABLE): Default to 0 when TAO_HAS_MINIMUM_CORBA==0, otherwise, for it to 1. (POA_NO_TIMESTAMP): Default to 0 (TAO_USE_DOTTED_DECIMAL_ADDRESSES): Default to 0. * TAO_IDL/be/be_visitor_operation/operation_cs.cpp: * TAO_IDL/be/be_visitor_operation/operation_ss.cpp: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPullConsumer.cpp: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPullSupplier.cpp: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushConsumer.cpp: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushSupplier.cpp: * orbsvcs/orbsvcs/Event/EC_ProxyConsumer.cpp: * orbsvcs/orbsvcs/Event/EC_ProxySupplier.cpp: * performance-tests/Latency/dii_client.cpp: * tao/Asynch_Invocation.cpp: * tao/Asynch_Invocation.h: * tao/Asynch_Invocation.i: * tao/Context.cpp: * tao/Context.h: * tao/DomainC.cpp: * tao/DomainC.h: * tao/DomainC.i: * tao/DomainS.cpp: * tao/DomainS_T.i: * tao/DynAnyC.cpp: * tao/DynAnyC.h: * tao/DynAnyS.cpp: * tao/DynAny_i.cpp: * tao/DynAny_i.h: * tao/DynArray_i.cpp: * tao/DynArray_i.h: * tao/DynEnum_i.cpp: * tao/DynEnum_i.h: * tao/DynSequence_i.cpp: * tao/DynSequence_i.h: * tao/DynStruct_i.cpp: * tao/DynStruct_i.h: * tao/DynUnion_i.cpp: * tao/DynUnion_i.h: * tao/Forwarding_Servant.cpp: * tao/Forwarding_Servant.h: * tao/GIOP_Message_Acceptors.cpp: * tao/GIOP_Message_Lite.cpp: * tao/GIOP_Server_Request.cpp: * tao/GIOP_Server_Request.h: * tao/ImplRepoC.cpp: * tao/ImplRepoS.cpp: * tao/InconsistentTypeCodeC.cpp: * tao/InconsistentTypeCodeC.h: * tao/Interceptor.cpp: * tao/Interceptor.h: * tao/Interceptor.i: * tao/InterceptorC.cpp: * tao/InterceptorC.h: * tao/InterceptorC.i: * tao/InterceptorS.cpp: * tao/InterceptorS.h: * tao/InterfaceS.cpp: * tao/NVList.cpp: * tao/NVList.h: * tao/ORB.cpp: * tao/ORB.h: * tao/ORB.i: * tao/ORB_Core.cpp: * tao/Object.cpp * tao/Object.h: * tao/POA.cpp: * tao/POA.h: * tao/POA.i: * tao/POAC.cpp: * tao/POAC.h: * tao/POAC.i: * tao/POA_CORBA.h: * tao/Reply_Dispatcher.cpp: * tao/Reply_Dispatcher.h: * tao/Reply_Dispatcher.i: * tao/Request.cpp: * tao/Request.h: * tao/Servant_Base.cpp: * tao/Servant_Base.h: * tao/Server_Request.h: * tao/Stub.cpp: * tao/Stub.h: * tao/Typecode_Constants.cpp: * tao/WrongTransactionC.cpp: * tao/WrongTransactionC.h: * tao/corbafwd.h: Changed the macro checking statements of aforementioned macros. [Bug 504] Mon Mar 27 20:37:02 2000 Jeff Parsons * tao/POAC.cpp: * tao/GIOP_Server_Request.cpp: The way we were handling ForwardRequest exceptions wasn't working with the new Any operators. The PortableServer::ForwardRequest >>= operator and TAO_GIOP_ServerRequest::set_exception have been changed to do the right thing. This fixes the failing of examples/POA/Forwarding on all platforms (except where minimum CORBA is defined). Changing the Any operators for IDL-defined exceptions, and modifying the rest of the exception >>= operators in TAO will follow shortly. Thanks to Carlos for suggesting the >>= fix. Mon Mar 27 19:27:00 2000 Douglas C. Schmidt * tao/ORB.cpp (ORB_init): Replace CORBA::Environment with CORBA_Environment to be consistent. Thanks to Yangfen Qiu for motivating this change. Mon Mar 27 16:11:29 2000 Irfan Pyarali * tao: The following changes allows the user finer grain control over the CORBA Messaging policies. Most (all?) of the CORBA Messaging policies are evaluated in the critical path and therefore having finer grain control over the policies is important. Thanks to Dennis Noll for suggesting this. - For all the policies, support is enabled by default if TAO is configured for CORBA Messaging. If TAO is not configured for CORBA Messaging, then policies cannot be enabled. Default support for all policies can be turned off by setting TAO_DISABLE_CORBA_MESSAGING_POLICIES to 1. Once TAO_DISABLE_CORBA_MESSAGING_POLICIES is set to 1, individual policies can be turned on through their own #define. Here is how to make it work: (a) If you want most policies turned on and a few disabled, disable the few explicitly, e.g.: #define TAO_HAS_REBIND_POLICY 0 (b) If you want most policies turned off and a few enabled, diable all by default and enable the few explicitly, e.g.: #define TAO_DISABLE_CORBA_MESSAGING_POLICIES 1 #define TAO_HAS_REBIND_POLICY 1 - The following #defines were added, one for each CORBA Messaging policy. Code related to each of the policies now use the appropriate #define instead of using TAO_HAS_CORBA_MESSAGING. - TAO_HAS_REBIND_POLICY - TAO_HAS_SYNC_SCOPE_POLICY - TAO_HAS_PRIORITY_POLICIES - TAO_HAS_REQUEST_START_TIME_POLICY - TAO_HAS_REQUEST_END_TIME_POLICY - TAO_HAS_REPLY_START_TIME_POLICY - TAO_HAS_REPLY_END_TIME_POLICY - TAO_HAS_RELATIVE_REQUEST_TIMEOUT_POLICY - TAO_HAS_RELATIVE_ROUNDTRIP_TIMEOUT_POLICY - TAO_HAS_ROUTING_POLICY - TAO_HAS_MAX_HOPS_POLICY - TAO_HAS_QUEUE_ORDER_POLICY - TAO_HAS_CLIENT_PRIORITY_POLICY - TAO_HAS_BUFFERING_CONSTRAINT_POLICY The following files were effected: - Buffering_Constraint_Policy.{cpp,h} - Client_Priority_Policy.{cpp,h,i} - IIOP_Connect.cpp - UIOP_Connect.cpp - Invocation.cpp - ORB.{cpp,h} - ORB_Core.{cpp,h,i} - Object.{cpp,h} - Stub.{cpp,h} - Sync_Strategies.{cpp,h} - TAOC.{cpp,h,i} - TAOS.{cpp,h,i} - Policy_Manager.{cpp,h,i} - Messaging_Policy_i.{cpp,h,i} - MessagingC.{cpp,h.i} - MessagingS.{cpp,h.i} - AMI is part of Messaging. Therefore, checking for TAO_HAS_CORBA_MESSAGING and TAO_HAS_AMI_CALLBACK or TAO_HAS_AMI_POLLER is redundant. Removed the extra TAO_HAS_CORBA_MESSAGING check. Following files were effected: - Asynch_Invocation.{cpp,h,i} - PollableC.{cpp,h} - PollableS.{cpp,h} - Reply_Dispatcher.{cpp,h,i} Mon Mar 27 11:11:01 2000 Balachandran Natarajan * tao/GIOP_Message_Acceptors.h: * tao/GIOP_Message_Acceptors.i: Added a destructor to the class TAO_GIOP_Message_Acceptors. This would reset the OutputCDR that it holds. Mon Mar 27 09:05:58 2000 Balachandran Natarajan * orbsvcs/tests/EC_Basic/Makefile: * orbsvcs/tests/Event/Basic: Needed the library libTAO_Svc_Utils for successful linking. Mon Mar 27 08:57:42 2000 Balachandran Natarajan * orbsvcs/tests/EC_Mcast/Makefile: Needed the library libTAO_Svc_Utils for successful linking. Sun Mar 26 20:20:00 2000 Kirthika Parameswaran * TAO_IDL/be/be_visitor_interface/smart_proxy_ch.cpp: * TAO_IDL/be/be_visitor_interface/smart_proxy_cs.cpp: Generated an implementation for <_stubobj> method in the Smart_Proxy_Base class which delegated this call to the underlying member. This allows <_narrow> on a smart proxy object to succeed. Thanks to Brian Wallis for reporting this bug. Sun Mar 26 14:57:38 2000 Jeff Parsons * TAO_IDL/fe/idl.ll: * TAO_IDL/fe/lex.yy.cpp: * TAO_IDL/fe/lex.yy.cpp.diff: Support added for escaped identifiers, as specified in CORBA 2.3.1. If an identifier appears in an IDL file with a leading underscore, it will now appear in generated code without the underscore (such identifiers were not accepted by the lexer previously). Now generated code can contain identifiers identical to IDL keywords. Note that if the stripped identifier matches a C++ keyword "_cxx_" will be prepended in generated code as before. Thanks to Alex Bangs for uncovering this problem by reporting that the IDL compiler would not accept CosLifeCycle.idl with valuetype support enabled (CosLifeCycle.idl contains an identifier "suppports", a valuetype keyword). This closes out Bugzilla #488. * orbsvcs/orbsvcs/CosLifeCycle.idl: Changed "supports" identifier to "_supports". Generated code is unchanged, and the file can now be compiled with the -Gv option. * docs/releasenotes/index.html: Added item about escaped identifier support in the IDL compiler. Sun Mar 26 13:32:10 2000 Jeff Parsons * TAO_IDL/util/utl_stack.cpp: Removed unused AST_Decl* variable in method push(), and the ScopeAsDecl() call that initializes it. This narrowing operation was causing a crash on cxx/Linux-alpha. This may not solve the underlying problem, if any. If that's the case, the error will turn up elsewhere the next time the IDL compiler is run on the above platform, but in any case, the local variable, the initialization, and the ACE_UNUSED_ARG statement were all superfluous in UTL_ScopeStack::push(). Sat Mar 25 22:10:00 2000 Kirthika Parameswaran * TAO_IDL/be/be_visitor_interface/interface_cs.cpp: Added a check for TAO_Stub pointer in the generated code for <_unchecked_narrow>. This check allowed <_unchecked_narrow> on a smart proxy to succeed. Previously this was failing as the member for a smart proxy is nil and it was used to increment its reference count. Thanks to Brian Wallis for reporting this bug. This did not solve the bug, more changes had to be made. Please see ChangeLogTag:Sun Mar 26 20:20:00 2000 Kirthika Parameswaran Sat Mar 25 15:24:06 2000 Carlos O'Ryan * examples/Callback_Quoter/Makefile: * examples/Event_Comm/Makefile: * examples/Logging/Makefile: * examples/Simple/bank/Makefile: * examples/Simple/echo/Makefile: * examples/Simple/grid/Makefile: * examples/Simple/time/Makefile: * examples/Simple/time-date/Makefile: * orbsvcs/Event_Service/Makefile: * orbsvcs/tests/EC_Custom_Marshal/Makefile: * orbsvcs/tests/EC_Multiple/Makefile: * orbsvcs/tests/EC_Throughput/Makefile: * orbsvcs/tests/Event_Latency/Makefile: * orbsvcs/tests/Property/Makefile: * orbsvcs/tests/Simple_Naming/Makefile: * orbsvcs/tests/Time/Makefile: * tests/InterOp-Naming/Makefile: Fixed a number of problems with the new orbsvcs libraries. Mostly missing libraries in the link line. Fri Mar 24 23:07:51 2000 Darrell Brunsch * examples/mfc/StdAfx.h: Added in a comment about how we have to include ACE/TAO headers before MFC headers. Fri Mar 24 22:24:10 2000 Carlos O'Ryan * orbsvcs/orbsvcs/Makefile.CosConcurrency: * orbsvcs/orbsvcs/Makefile.CosLifeCycle: * orbsvcs/orbsvcs/Makefile.CosNaming: * orbsvcs/orbsvcs/Makefile.CosNotification: * orbsvcs/orbsvcs/Makefile.CosProperty: * orbsvcs/orbsvcs/Makefile.CosTime: * orbsvcs/orbsvcs/Makefile.CosTrading: * orbsvcs/orbsvcs/Makefile.DsLogAdmin: * orbsvcs/orbsvcs/Makefile.RTSched: * orbsvcs/orbsvcs/Makefile.Svc_Utils: Set the MAKEFILE macro properly. * orbsvcs/orbsvcs/Makefile.CosEvent: * orbsvcs/orbsvcs/Makefile.RTEvent: Disabled the new EC on old versions of g++. Fri Mar 24 22:18:14 2000 Carlos O'Ryan * orbsvcs/Naming_Service/Makefile: Added missing library. Fri Mar 24 21:32:30 2000 Pradeep Gore * docs/releasenotes/index.html: Updated the section on the Notification Service. Thanks to Roger Tragin for reminding to update. Fri Mar 24 17:15:07 2000 Ossama Othman * tao/IIOP_Acceptor.cpp (is_collocated): * tao/SHMIOP_Acceptor.cpp (is_collocated): * tao/UIOP_Acceptor.cpp (is_collocated): Check that dynamically cast pointer is actually valid (i.e. non-zero) prior to using it. Fri Mar 24 18:38:20 2000 Douglas C. Schmidt * orbsvcs/tests/AVStreams/Full_Profile/server.cpp: Fixed a typo where ACE_Null_Mutex was being passed as ACE_null_mutex. Thanks to Thomas Groth for reporting this. Fri Mar 24 15:40:25 2000 Darrell Brunsch * orbsvcs/orbsvcs/CosNaming.dsp: Changed the release version of the IDL custom build to use "Naming\naming_export.h" instead of just "naming_export.h" * examples/mfc/StdAfx.h: * examples/mfc/server.cpp: * examples/mfc/client.dsp: * examples/mfc/server.dsp: As was pointed out by David Dunn , the release version wasn't compiling since the headers were not in the proper order. Moved the ACE/TAO headers to the beginning of StdAfx. While I was there, I fixed up the dsp files to be more consistent with the rest of our project files. [Bug 512] Fri Mar 24 10:21:27 2000 Jeff Parsons * TAO_IDL/ast/ast_expression.cpp: Initialized some variables to avoid cxx warnings, and made some cosmetic changes. Thu Mar 23 23:57:16 2000 Irfan Pyarali * rules.tao.GNU: There was a problem with the current make rules that define default values some #defines, e.g., if nothing is specified by the user with the make command wrt corba messaging, -DTAO_HAS_CORBA_MESSAGING=1 gets added automatically. Make rules such as these are too aggressive since this prevents the user from setting #define TAO_HAS_CORBA_MESSAGING 0 in their config files. Therefore, the default setting of the following variables was removed from rules.tao.GNU since they will automatically be picked up from the orb config file unless overridden by the user in their config file: - TAO_HAS_CORBA_MESSAGING - TAO_HAS_RT_CORBA - TAO_HAS_AMI - TAO_HAS_AMI_POLLER - TAO_HAS_AMI_CALLBACK Thu Mar 23 21:49:36 2000 Darrell Brunsch * orbsvcs/orbsvcs/RTEvent.dsp: Somehow the debugging information generation was turned off. Turned it back on, so once again RTEvent can be stepped into with the debugger. * orbsvcs/orbsvcs/DSLogAdmin.dsp: (removed) * orbsvcs/orbsvcs/DsLogAdmin.dsp: (added) * orbsvcs/orbsvcs/orbsvcs.dsw: Fixed the capitalization of DsLogAdmin. [Bug 508] Thu Mar 23 21:11:31 2000 Carlos O'Ryan * orbsvcs/tests/Event/Basic/Makefile: * orbsvcs/tests/Event/Basic/Control.h: * orbsvcs/tests/Event/Basic/Control.cpp: * orbsvcs/tests/Event/Basic/Control.dsp: * orbsvcs/tests/Event/Basic/control.conf: * orbsvcs/tests/Event/Basic/run_test.pl: New test to check the ConsumerControl strategies, its consumers are deactivated without disconnecting, the supplier continues pushing events. It works on Linux, but there seems to be problems on NT. * orbsvcs/tests/Event/lib/Counting_Consumer.h: * orbsvcs/tests/Event/lib/Counting_Consumer.cpp: Implement a separate function to deactivate the servant, it is used in the ConsumerControl strategy test. * docs/cec_options.html: * docs/ec_options.html: Fixed some errors in the documentation. Thu Mar 23 22:06:57 2000 Pradeep Gore Added this logic to recycle ids - when an object gets destroyed, it informs its parent before going away.The parent then recycles the id that was assigned to that child. * orbsvcs/orbsvcs/Notify/Notify_ConsumerAdmin_i.{h,cpp}: added method proxy_pushsupplier_destroyed * orbsvcs/orbsvcs/Notify/Notify_SupplierAdmin_i.{h,cpp}: added method proxy_pushconsumer_destroyed * orbsvcs/orbsvcs/Notify/Notify_EventChannel_i.{h,cpp}: added methods consumer_admin_destroyed, supplier_admin_destroyed * orbsvcs/orbsvcs/Notify/Notify_Proxy_T.{h,cpp}: added CosNotifyChannelAdmin::ProxyID param to . added CosNotifyChannelAdmin::ProxyID data member. * orbsvcs/orbsvcs/Notify/Notify_ProxyConsumer_T.{h,cpp}: * orbsvcs/orbsvcs/Notify/Notify_ProxyPushConsumer_i.{h,cpp}: * orbsvcs/orbsvcs/Notify/Notify_ProxyPushConsumer_i.{h,cpp}: * orbsvcs/orbsvcs/Notify/Notify_ProxySupplier_T.{h,cpp}: removed extraneous method. Notify_Proxy_T::init will suffice. * orbsvcs/orbsvcs/Notify/Notify_Resource_Manager.{h,cpp}: updated comments. Thu Mar 23 22:28:09 2000 Carlos O'Ryan * orbsvcs/ImplRepo_Service/Makefile: Only the TAO_Svc_Utils library is needed in this directory. Thu Mar 23 20:49:43 2000 David L. Levine * tao/append.cpp (append), skip.cpp (skip): replaced assignment of ~0UL to a CORBA::ULong, because cxx complained about the 64-to-32 bit truncation. Instead, created a local const null_member that should be platform independent (at the expense of a static_cast, to be really sure that no compiler complains). Thu Mar 23 15:26:52 2000 Carlos O'Ryan * PROBLEM-REPORT-FORM: Modified the text to encourage users to report real bugs to Bugzilla, that way we don't have to enter them ourselves. Only dubious stuff should be reported to the mailing list. Thu Mar 23 17:02:46 2000 Balachandran Natarajan * tests/AMI/Makefile: * examples/Buffered_AMI/Makefile: Updated dependencies. Thanks to Jeff for reporting this. Thu Mar 23 15:38:23 2000 Balachandran Natarajan * tao/GIOP_Message_Accept_State.cpp: Fixed a typo. Thu Mar 23 14:48:12 2000 Nanbor Wang * TAO_IDL/be/be_codegen.cpp: * tao/*.h: * orbsvcs/orbsvcs/*.h: Moved the inclusion of down after the definition of header guard macro. The original order violated the ACE programming guideline. Thanks to Carlos for catching this. Thu Mar 23 11:06:24 2000 Carlos O'Ryan * orbsvcs/orbsvcs/Makefile: * orbsvcs/orbsvcs/Makefile.CosConcurrency: * orbsvcs/orbsvcs/Makefile.CosEvent: * orbsvcs/orbsvcs/Makefile.CosLifeCycle: * orbsvcs/orbsvcs/Makefile.CosNaming: * orbsvcs/orbsvcs/Makefile.CosNotification: * orbsvcs/orbsvcs/Makefile.CosProperty: * orbsvcs/orbsvcs/Makefile.CosTime: * orbsvcs/orbsvcs/Makefile.CosTrading: * orbsvcs/orbsvcs/Makefile.DsLogAdmin: * orbsvcs/orbsvcs/Makefile.RTEvent: * orbsvcs/orbsvcs/Makefile.RTSched: * orbsvcs/orbsvcs/Makefile.Svc_Utils: * orbsvcs/orbsvcs/Makefile.av: Generate separate libraries for each ORB service. The split is along the same lines that the MSVC split was made. This eliminates the need to do subsetting for orbsvcs, but you can still select a subset of the libraries that are compiled using TAO_ORBSVCS * */Makefile: Changed all the link rules that were using -lorbsvcs to use the right libraries instead. Updated all the dependencies. * rules.tao.GNU: Changed the rules to generate files from IDL. The previous version boiled down to: foo{C,S,S_T}.{h,i,cpp}: foo.idl that is actually 9 rules rolled into one, not a rule with multiple outputs. Thus it can result in multiple parallel invocations of the IDL compiler to generate some of the files. The new rule is: fooC.h: foo.idl # Invoke the IDL compiler. fooC.{i,cpp} foo{S,S_T}.{h,i,cpp}: fooC.h # Do dummy thing (/bin/true) Now things work right, the IDL compiler is invoked only once (to generate fooC.h), all the other files are satisfied by invocations to the dummy rule. This problem was present before the split of the orbsvcs library, it just became more apparent after the split. * orbsvcs/orbsvcs/AV/AVStreams_i.cpp: * orbsvcs/orbsvcs/AV/sfp.cpp: Upgraded to use the CDR insertion and extraction operators instead of interpretive marshaling. It should have been fixed in the non_interpretive branch, but AV is not compiled by default! Also fixed several problems with the use of >>= operators with Anys. * orbsvcs/Notify_Service/Notify_Service.cpp: * orbsvcs/tests/Event/Performance/Inversion.cpp: Fixed warnings due to ambigous conversion from T_var to T_ptr. Thu Mar 23 08:45:51 2000 Carlos O'Ryan * orbsvcs/tests/EC_Custom_Marshal/ECM_Supplier.cpp: Changed an ACE_THROW to ACE_THROW_RETURN, thanks to Jeff for pointing out this problem. Thu Mar 23 10:16:16 2000 Jeff Parsons * utils/catior/catior.cpp: Removed an unused CORBA::Environment parameter. Thu Mar 23 09:23:34 2000 Balachandran Natarajan * tao/GIOP_Message_Acceptors.cpp (process_client_request): Fixed a warning in KAI compiler. Wed Mar 22 21:02:07 2000 Ossama Othman * tao/IIOP_Acceptor.cpp (hostname): Fall back on IP address if hostname lookup fails. This gets around a system configuration problem on hosts that don't have the host tables or DNS setup properly. Thanks to J. Russell Noseworthy for motivating this feature. [Bug 503] Wed Mar 22 16:24:26 2000 Pradeep Gore * orbsvcs/Notify_Service/Notify_Service.{h,cpp}: Fixed bug#502. If the Naming Service is not started, an appropriate message is displayed. Thanks to Andrey Nechypurenko for reporting this. Wed Mar 22 14:11:47 2000 Jeff Parsons * TAO_IDL/be/be_visitor_array/array_cs.cpp: * TAO_IDL/be/be_visitor_exception/exception_cs.cpp: * TAO_IDL/be/be_visitor_interface/interface_cs.cpp: * TAO_IDL/be/be_visitor_sequence/sequence_cs.cpp: * TAO_IDL/be/be_visitor_struct/struct_cs.cpp: * TAO_IDL/be/be_visitor_union/union_cs.cpp: Changed the code generated for the body of _tao_any_destructor() to generate the datatype's local name instead of its scoped name. Thanks to Carlos for reporting this bug. Wed Mar 22 13:32:50 2000 Jeff Parsons * tao/InterfaceC.h: * tao/InterfaceS.h: Removed the leading and trailing underbar characters from the all-caps string made from the filename that follows #ifndef, #define, etc. This not only follows the style common to hand-crafted IDL generated files, but avoids a namespace clash with generated files in IDL_Test. Wed Mar 22 11:53:21 2000 Balachandran Natarajan * tao/GIOP_Message_Base.cpp (dump_msg): Added ASYS_TEXT in places where it was missing. Wed Mar 22 11:38:14 2000 Balachandran Natarajan * tao/GIOP_Message_Base.cpp (handle_input): Improper use of '%p' in a ACE_DEBUG statements. Thanks to Ossama Othman for reporting this. Wed Mar 22 09:44:06 2000 Jeff Parsons * tao/Typecode.cpp: * tao/GIOP_Message_Base.cpp: * tao/GIOP_Message_Lite.cpp; Removed unreachable 'break' statements (occurre after 'return' statement in a switch case. These were causing warnings on kai3.3. Tue Mar 21 20:13:01 2000 Ossama Othman * tao/IIOP_Acceptor.h (TAO_IIOP_Acceptor): * tao/IIOP_Acceptor.cpp (open_default, probe_interfaces): Moved network interface probing code into a separate helper function. This makes the code a bit cleaner, and allows both open methods (see below) to use the same probing code. (open): Open an endpoint with a given port on each network interface for the case where the endpoint only contains a port, i.e. wildcard the hosts/interfaces but use the same port for each interface. For example, given the following network interfaces: eth0 foo1.bar.baz eth1 foo2.bar.baz and the following "-ORBEndpoint" option: -ORBEndpoint iiop://:1234 The following endpoints will be created (assuming a properly configured host table and/or DNS): foo1.bar.baz:1234 foo2.bar.baz:1234 Thanks to Chris Hafey for motivating this feature. He points out this feature is useful for persistent IORs. Tue Mar 21 21:43:09 2000 Jeff Parsons * tao/InterfaceC.cpp: Fixed some cut and paste mistakes in the hand-crafted _tao_any_destructor functions. Tue Mar 21 21:16:42 2000 Jeff Parsons * tao/PollableC.cpp: Fixed typo. Tue Mar 21 20:31:02 2000 Jeff Parsons * tao/DynAnyC.cpp * tao/DynAnyC.h: * tao/DynArray_i.cpp: * tao/DynArray_i.h: * tao/DynSequence_i.cpp: * tao/DynSequence_i.h: * tao/GIOPC.h: * tao/GIOP_Server_Request.cpp: * tao/IOPC.h: * tao/IORC.cpp: * tao/IORC.h: * tao/ImplRepoC.cpp: * tao/ImplRepoC.h: * tao/Interceptor.cpp: * tao/Interceptor.h: * tao/Interceptor.i: * tao/Invocation.cpp: * tao/MessagingC.h: * tao/ORB.h: * tao/Object_KeyC.h: * tao/POAC.cpp: * tao/POAC.h: * tao/PolicyC.h: * tao/Request.h: * tao/Services.h: * tao/corbafwd.h: Removed all typedefs of foo_ptr to foo::_ptr_type and all typedefs and use of foo * as foo_ptr, for all datatypes except interfaces, valuetypes, pseudo objects, and a few types that appear as foo_ptr in spec examples (NamedValue, NVList, ExceptionList, etc.). Even though I don't think the spec intends for these types to have the typedef, I left them in to hopefully reduce confusion. * tao/TAO.dsp: Added BoundsC.* to the project file. It had been removed by a recent checkin. Tue Mar 21 17:13:48 2000 Carlos O'Ryan * orbsvcs/orbsvcs/Event/EC_Dispatching_Task.h: Somehow this change of mine got lost or was not commited when it should have. Fixed the export macro to fit the new standard set by Darrell. Tue Mar 21 19:06:02 2000 Jeff Parsons * TAO_IDL/util/utl_scope.cpp: Changed the function that looks up succesive components of a scoped name to recursive instead of iterative. This makes it easier to handle backing up and trying another path when the IDL file contains reopened and/or nested and/or #included modules. Thanks to Florian Lackerbauer for sending in the nasty IDL example file. Tue Mar 21 12:16:01 2000 Carlos O'Ryan * tao/TAO.dsp: Removed encode.cpp, decode.cpp and deep_free.cpp, i could not make it on the first commit because there was a conflict. Tue Mar 21 13:51:23 2000 Carlos O'Ryan * Merged in the changes in the non_interpretive branch. This fixes [BUGID:135] * */Makefile: Updated dependencies in all the makefiles. Thu Mar 16 17:16:53 2000 Carlos O'Ryan * tao/Any.cpp: Fixed some code to work in platforms without exceptions. * tao/orb.idl: Added a missing #pragma prefix "" * tests/Param_Test/anyop.cpp: Fixed so the Object Reference test works on any host. Not very elegant or portable, but it does the job. Mon Mar 13 15:37:05 2000 Carlos O'Ryan * tao/TAO.dsp: * tao/TAO_Static.dsp: Removed the deep_free.cpp file from the projects. * TAO_IDL/be/be_visitor_union/any_op_cs.cpp: Corrected indentation. Mon Mar 13 14:19:27 2000 Carlos O'Ryan * TAO_IDL/be/be_visitor_exception/any_op_cs.cpp: * TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp: * TAO_IDL/be/be_visitor_structure/any_op_cs.cpp: * TAO_IDL/be/be_visitor_union/any_op_cs.cpp: There are two versions of the >>= operators: CORBA::Boolean >>= (const Any&, T*&) CORBA::Boolean >>= (const Any&, const T*&) the first one is deprecated, but we still support it. Jeff Parsons pointed out that the first version can be implemented using the second version as follows: return any >>= ACE_const_cast(const T*&,x); i also simplified the implementation of the second version. * TAO_IDL/be/be_visitor_array/array_cs.cpp: * TAO_IDL/be/be_visitor_exception/exception_cs.cpp: * TAO_IDL/be/be_visitor_interface/interface_cs.cpp: * TAO_IDL/be/be_visitor_sequence/sequence_cs.cpp: * TAO_IDL/be/be_visitor_structure/structure_cs.cpp: * TAO_IDL/be/be_visitor_union/union_cs.cpp: Had to revert Jeff fix for the _tao_any_destructor functions declared in deeply nested modules. GCC gets utterly confused by this declaration: void ::Foo::Bar::_tao_any_destructor (void *) .... it tolerates this one: void Foo::Bar::_tao_any_destructor (void *) .... but fails with this one: void Foo::Bar::Foo::_tao_any_destructor (void *) .... * tao/Makefile: * tao/deep_free.cpp: * tao/Marshal.h: * tao/Marshal.i: Removed (finally!) the deep_free methods. Now we only need to remove the support classes to finally get rid of all the interpretive marshaling code. * tao/GIOPC.cpp: * tao/IOPC.cpp: * tao/ImplRepoC.h: * tao/ImplRepoC.i: * tao/ImplRepoC.cpp: * tao/ImplRepoS.h: * tao/ImplRepoS.i: * tao/ImplRepoS.cpp: * tao/ImplRepoS_T.h: * tao/ImplRepoS_T.i: * tao/ImplRepoS_T.cpp: * tao/InterceptorC.cpp: * tao/POAC.cpp: * tao/PolicyC.cpp: * tao/TAOC.cpp: Fix the hand-crafted files with respect to the two versions of the >>= operators. * TAO_IDL/Makefile: Updated dependencies * TAO_IDL/be/be_visitor_factory.cpp: Cosmetic fixes. Mon Mar 13 08:23:23 2000 Carlos O'Ryan * tao/Any.h: * tao/Any.cpp: The _tao_replace() functions do not require an ACE_TRY_ENV argument. Any _tao_replace() function that requires a void* also requires the destructor function. * tao/BoundsC.h: * tao/BoundsC.cpp: * tao/CONV_FRAMEC.cpp: * tao/CurrentC.cpp: * tao/DomainC.cpp: * tao/DynAnyC.h: * tao/DynAny_i.cpp: * tao/GIOPC.cpp: * tao/IOPC.cpp: * tao/IOPC.h: * tao/IORC.h: * tao/IORC.cpp: * tao/ImplRepoC.h: * tao/ImplRepoC.i: * tao/ImplRepoC.cpp: * tao/ImplRepoS.cpp: * tao/ImplRepoS.h: * tao/ImplRepoS.i: * tao/ImplRepoS_T.h: * tao/ImplRepoS_T.i: * tao/ImplRepoS_T.cpp: * tao/InterceptorC.h: * tao/InterceptorC.cpp: * tao/InterfaceC.h: * tao/InterfaceC.cpp: * tao/MessagingC.h: * tao/MessagingC.cpp: * tao/MessagingS.cpp: * tao/NVList.cpp: * tao/ObjectIDList.h: * tao/ObjectIDList.cpp: * tao/POAC.h: * tao/POAC.cpp: * tao/PolicyC.h: * tao/PolicyC.cpp: * tao/PollableC.h: * tao/PollableC.cpp: * tao/Sequence.h: * tao/Sequence.cpp: * tao/Services.h: * tao/Services.cpp: * tao/TAOC.h: * tao/TAOC.cpp: * tao/TimeBaseC.h: * tao/TimeBaseC.cpp: Changed all the hand-crafted files to use the new _tao_replace style functions. * TAO_IDL/be/be_visitor_array/any_op_cs.cpp: * TAO_IDL/be/be_visitor_enum/any_op_cs.cpp: * TAO_IDL/be/be_visitor_exception/any_op_cs.cpp: * TAO_IDL/be/be_visitor_interface/any_op_cs.cpp: * TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp: * TAO_IDL/be/be_visitor_structure/any_op_cs.cpp: * TAO_IDL/be/be_visitor_union/any_op_cs.cpp: The _tao_replace() functions do not require the ACE_TRY_ENV argument anymore. This let us simplify many of the implementations for >>= and <<= operators. We also identified some cases of duplicated code and removed as much as possible of that. * tests/Param_Test/Param_Test.dsw: * tests/Param_Test/anyop.dsp: * tests/Param_Test/anyop.cpp: Added the anyop test to the NT project files. Fri Mar 10 19:06:05 2000 Jeff Parsons * tao/DynAnyC.h: * tao/DynAnyC.cpp: Removed some unnecessary _ptr_type typedefs. Fri Mar 10 14:54:20 2000 Jeff Parsons * TAO_IDL/be/be_visitor_array/array_cs.cpp: * TAO_IDL/be/be_visitor_exception/exception_cs.cpp: * TAO_IDL/be/be_visitor_interface/interface_cs.cpp: * TAO_IDL/be/be_visitor_sequence/sequence_cs.cpp: * TAO_IDL/be/be_visitor_structure/structure_cs.cpp: * TAO_IDL/be/be_visitor_union/union_cs.cpp: In the definition of the static function _tao_any_destructor, prepending the global "::" to the scoped name of the class or struct keeps gcc happy. Thanks to Carlos for pointing this out. Fri Mar 10 12:24:01 2000 Carlos O'Ryan * examples/POA/DSI/Database_i.cpp: * orbsvcs/LifeCycle_Service/Criteria_Evaluator.cpp: * orbsvcs/orbsvcs/Event/EC_Gateway_UDP.cpp: * orbsvcs/orbsvcs/Property/CosPropertyService_i.cpp: * orbsvcs/orbsvcs/Trader/Constraint_Nodes.cpp: * orbsvcs/tests/EC_Custom_Marshal/ECM_Supplier.cpp: * orbsvcs/tests/Property/client.cpp: * orbsvcs/tests/Trading/Offer_Exporter.cpp: * orbsvcs/tests/Trading/TT_Info.cpp: * tests/CDR/basic_types.cpp: * tests/Param_Test/objref.cpp: * tests/Param_Test/objref.h: * utils/catior/catior.cpp: Fixed uses of encode(), decode(), replace(), the void* constructor for Any and obsolete >>= or <<= operators. * */Makefile: Updated dependencies Fri Mar 10 11:28:17 2000 Carlos O'Ryan * tao/Any.cpp: The >>= operator for 'const Any*' was not working properly, thanks to Jeff for letting me know. * tao/GIOPC.h: * tao/GIOPC.cpp: Another pair of files updated. Fri Mar 10 12:49:21 2000 Jeff Paraons * TAO_IDL/be/be_codegen.cpp * TAO_IDL/be/be_visitor_argument.cpp * TAO_IDL/be/be_visitor_factory.cpp * TAO_IDL/be/be_visitor_operation.cpp * TAO_IDL/be/be_visitor_argument/marshal_ss.cpp * TAO_IDL/be/be_visitor_argument/post_upcall_ss.cpp * TAO_IDL/be/be_visitor_argument/pre_invoke_cs.cpp * TAO_IDL/be/be_visitor_argument/vardecl_ss.cpp * TAO_IDL/be/be_visitor_operation/argument.cpp * TAO_IDL/be/be_visitor_operation/operation_cs.cpp * TAO_IDL/be/be_visitor_operation/operation_ss.cpp * TAO_IDL/be/be_visitor_operation/rettype_marshal_ss.cpp * TAO_IDL/be/be_visitor_operation/rettype_post_upcall_ss.cpp * TAO_IDL/be/be_visitor_operation/rettype_pre_invoke_cs.cpp * TAO_IDL/be/be_visitor_operation/rettype_vardecl_ss.cpp * TAO_IDL/be/be_visitor_union/any_op_cs.cpp * TAO_IDL/be/be_visitor_valuetype/arglist.cpp * TAO_IDL/be_include/be_codegen.h * TAO_IDL/be_include/be_visitor_argument.h * TAO_IDL/be_include/be_visitor_factory.h * TAO_IDL/be_include/be_visitor_operation.h * TAO_IDL/be_include/be_visitor_argument/marshal_ss.h * TAO_IDL/be_include/be_visitor_argument/post_upcall_ss.h * TAO_IDL/be_include/be_visitor_argument/pre_invoke_cs.h * TAO_IDL/be_include/be_visitor_argument/vardecl_ss.h * TAO_IDL/be_include/be_visitor_operation/operation_cs.h * TAO_IDL/be_include/be_visitor_operation/operation_ss.h * TAO_IDL/be_include/be_visitor_operation/rettype_marshal_ss.h * TAO_IDL/be_include/be_visitor_operation/rettype_post_upcall_ss.h * TAO_IDL/be_include/be_visitor_operation/rettype_pre_invoke_cs.h * TAO_IDL/be_include/be_visitor_operation/rettype_vardecl_ss.h * TAO_IDL/be_include/be_visitor_union/any_op_cs.h * TAO_IDL/driver/drv_args.cpp * TAO_IDL/include/idl_global.h * TAO_IDL/util/utl_global.cpp Changes to remove the generation of code using interpretive marshaling. * TAO_IDL/be/be_visitor_argument/invoke_cs.cpp * TAO_IDL/be/be_visitor_argument/post_invoke_cs.cpp * TAO_IDL/be/be_visitor_operation/rettype_post_invoke_cs.cpp * TAO_IDL/be_include/be_visitor_argument/invoke_cs.h * TAO_IDL/be_include/be_visitor_argument/post_invoke_cs.h * TAO_IDL/be_include/be_visitor_operation/rettype_post_invoke_cs.h Files added or renamed from other files removed below. * TAO_IDL/be/be_visitor_argument/compiled_marshal_cs.cpp * TAO_IDL/be/be_visitor_argument/compiled_marshal_ss.cpp * TAO_IDL/be/be_visitor_argument/docall_cs.cpp * TAO_IDL/be/be_visitor_argument/post_docall_compiled_cs.cpp * TAO_IDL/be/be_visitor_argument/post_docall_cs.cpp * TAO_IDL/be/be_visitor_argument/pre_docall_cs.cpp * TAO_IDL/be/be_visitor_argument/pre_upcall_ss.cpp * TAO_IDL/be/be_visitor_operation/compiled_marshal.cpp * TAO_IDL/be/be_visitor_operation/rettype_docall_cs.cpp * TAO_IDL/be/be_visitor_operation/rettype_post_docall_cs.cpp * TAO_IDL/be/be_visitor_operation/rettype_pre_docall_cs.cpp * TAO_IDL/be_include/be_visitor_argument/compiled_marshal_cs.h * TAO_IDL/be_include/be_visitor_argument/compiled_marshal_ss.h * TAO_IDL/be_include/be_visitor_argument/docall_cs.h * TAO_IDL/be_include/be_visitor_argument/post_docall_compiled_cs.h * TAO_IDL/be_include/be_visitor_argument/post_docall_cs.h * TAO_IDL/be_include/be_visitor_argument/pre_docall_cs.h * TAO_IDL/be_include/be_visitor_argument/pre_upcall_ss.h * TAO_IDL/be_include/be_visitor_operation/compiled_marshal.h * TAO_IDL/be_include/be_visitor_operation/rettype_docall_cs.h * TAO_IDL/be_include/be_visitor_operation/rettype_post_docall_cs.h * TAO_IDL/be_include/be_visitor_operation/rettype_pre_docall_cs.h Files removed. Fri Mar 10 09:49:40 2000 Carlos O'Ryan * tao/Any.h: * tao/Any.cpp: More memory management fixes for the >>= and <<= operators. Moved some static _tao_any_destructor functions to the Any class, it is easier to maintain it that way. * tao/Object.h: * tao/Object.cpp: Add the _tao_any_destructor helper function. * tao/DomainC.h: * tao/DomainC.cpp: Changed to use the new _tao_any_destructors in the right places. * tao/DynAny_i.cpp: It is better just to return 0 than to cast away const. Fri Mar 10 11:28:15 2000 Jeff Parsons * tao/TAO.dsp: * tao/TAO_static.dsp: Added BoundsC.cpp to these projects. * tao/DynAny_i,cpp: In get_string() cast away the constness of the internal char* pointer in the ACE_THROW_RETURN statement. Thu Mar 9 21:02:10 2000 Carlos O'Ryan * TAO_IDL/be/be_visitor_operation/ami_exception_holder_operation_cs.cpp: Fixed typo. Thu Mar 9 18:50:44 2000 Carlos O'Ryan * tao/Any.h: * tao/Any.i: * tao/Any.cpp: The <<= and >>= operators must set a function to cleanup the objects stored by the Any. The function usually just casts from void* to the real type and invokes 'delete' or CORBA::release(). This is far more efficient, type safe and maintainable than the deep_free approach. The function is provided in the _tao_replace() method. For the time beign (until the hand-crafted code is fixed), we maintain both versions. * TAO_IDL/be/be_visitor_array/any_op_cs.cpp: * TAO_IDL/be/be_visitor_array/array_ch.cpp: * TAO_IDL/be/be_visitor_array/array_cs.cpp: * TAO_IDL/be/be_visitor_array/cdr_op_ci.cpp: * TAO_IDL/be/be_visitor_enum/any_op_cs.cpp: * TAO_IDL/be/be_visitor_exception/any_op_cs.cpp: * TAO_IDL/be/be_visitor_exception/exception_ch.cpp: * TAO_IDL/be/be_visitor_exception/exception_cs.cpp: * TAO_IDL/be/be_visitor_interface/any_op_cs.cpp: * TAO_IDL/be/be_visitor_interface/interface_ch.cpp: * TAO_IDL/be/be_visitor_interface/interface_cs.cpp: * TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp: * TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp: * TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp: * TAO_IDL/be/be_visitor_sequence/sequence_cs.cpp: * TAO_IDL/be/be_visitor_structure/any_op_cs.cpp: * TAO_IDL/be/be_visitor_structure/structure_ch.cpp: * TAO_IDL/be/be_visitor_structure/structure_cs.cpp: * TAO_IDL/be/be_visitor_union/any_op_cs.cpp: * TAO_IDL/be/be_visitor_union/union_ch.cpp: * TAO_IDL/be/be_visitor_union/union_cs.cpp: Modified to: - Generate an _tao_any_destructor() function to destroy the object stored into an any. For sequences, structures, unions and interfaces the function is an static function of the corresponding class. For arrays it is a static member of the T_forany class. - The generated <<= and >>= operators have been modified to pass the _tao_any_destructor. Thus the generated code no longer depends on deep_free! Furthermore the implementations of the <<= operators have been optimized. It makes no sense to pre-allocate the object, because sometimes the >>= operator is never invoked. In other word: eager evaluation only makes sense when the result is used all the time, and this is not the case for the <<= operators. * tao/BoundsC.cpp: * tao/BoundsC.h: * tao/CONV_FRAMEC.cpp: * tao/CONV_FRAMEC.h: * tao/CurrentC.cpp: * tao/CurrentC.h: * tao/DomainC.cpp: Updated to use the new _tao_replace() methods. * tao/DynAny_i.cpp: The >>=(char*&) operators have been removed from the Any class, they were a TAO extension. * tests/Param_Test/Makefile: * tests/Param_Test/anyop.cpp: Updated dependencies. * tests/Param_Test/any.cpp: * tests/Param_Test/bd_wstring.cpp: * tests/Param_Test/objref.cpp: * tests/Param_Test/param_test_i.cpp: * tests/Param_Test/recursive_union.cpp: * tests/Param_Test/typecode.cpp: * tests/Param_Test/ub_any_seq.cpp: * tests/Param_Test/ub_string.cpp: * tests/Param_Test/ub_wstring.cpp: Fix a few memory management problems and some glaring bugs. With this round of changes all the DII and SII tests pass! We still have to look for memory leaks. * TAO_IDL/be/be_visitor_operation/ami_exception_holder_operation_cs.cpp: * tao/decode.cpp: * tao/encode.cpp: These files were not commited in the last change. Wed Mar 8 19:18:10 2000 Carlos O'Ryan * tao/Makefile: * tao/Marshal.h: * tao/decode.cpp: * tao/encode.cpp: I have started the work to remove the interpretive engine. The first step was to remove the the encode() and decode() methods. We have re-implemented all the other components in the ORB to use compiled marshaling instead. * tao/Any.h: * tao/Any.i: * tao/Any.cpp: All the methods taking void* are deprecated (unfortunately due to an editorial mistake this resolution didn't make it into the text of the CORBA 2.3 mapping). There is no portable way to use them anyway. For the time beign we have commented them out, to check that no portion of TAO invokes them, eventually we will make them visible again, but they will raise the CORBA::NO_IMPLEMENT exception. Re-implement all the basic <<= and >>= operators using _tao_replace() instead of replace(). The extraction operators for the CORBA::Any::to_string, CORBA::Any::to_wstring and CORBA::Any::to_object classes were not implemented properly. First they did not unalias the types, and next they used equivalent() with the wrong TypeCode. Implement the CDR operators for Any using compiled marshaling. * tao/Makefile: * tao/BoundsC.h: * tao/BoundsC.cpp: BoundsC was not compiled, though this is the right exception to raise from certain NVList operations. Updated to use _tao_replace() in the >>= and <<= operators. * tao/CDR.h: * tao/CDR.cpp: Remove the decode() and encode() methods * tao/Stub.h: * tao/Stub.cpp: * tao/GIOP_Server_Request.h: * tao/GIOP_Server_Request.cpp: * tao/Server_Request.h: Remove the support for interpretive marshaling. * tao/Invocation.h: * tao/Invocation.cpp: Removed old comments about interpretive marshaling. * tao/NVList.cpp: It was raising CORBA::TypeCode::Bounds to signal an error, but the correct exception is CORBA::Bounds. * tao/Exception.cpp: * tao/DynAny_i.cpp: * tao/Forwarding_Servant.cpp: * tao/MessagingS.cpp: * tao/ObjectIDList.cpp: * tao/ObjectIDList.h: * tao/POAS.cpp: * tao/PolicyS.cpp: * tao/PollableS.cpp: * tao/Services.cpp: * tao/Services.h: * tao/Typecode.h: * tao/Typecode.cpp: * tao/append.cpp: * tao/skip.cpp: Re-implemented several stubs using compiled marshaling. Use _tao_replace() in <<= and >>= operators. * TAO_IDL/be/be_visitor_operation/ami_exception_holder_operation_cs.cpp: Use _tao_encode() and _tao_decode() to marshal and demarshal exceptions. Those methods are implemented using compiled marshaling. * tao/POAC.cpp: * TAO_IDL/be/be_visitor_array/cdr_op_ci.cpp: * TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp: Cosmetic changes. * tests/Param_Test/Makefile: * tests/Param_Test/anyop.cpp: New test to verify that the <<= and >>= operators work correctly. * tests/Param_Test/param_test.idl: * tests/Param_Test/client.cpp: * tests/Param_Test/any.h: * tests/Param_Test/any.cpp: * tests/Param_Test/bd_array_seq.h: * tests/Param_Test/bd_array_seq.cpp: * tests/Param_Test/bd_long_seq.h: * tests/Param_Test/bd_long_seq.cpp: * tests/Param_Test/bd_short_seq.h: * tests/Param_Test/bd_short_seq.cpp: * tests/Param_Test/bd_str_seq.h: * tests/Param_Test/bd_str_seq.cpp: * tests/Param_Test/bd_string.h: * tests/Param_Test/bd_string.cpp: * tests/Param_Test/bd_struct_seq.h: * tests/Param_Test/bd_struct_seq.cpp: * tests/Param_Test/bd_wstr_seq.h: * tests/Param_Test/bd_wstr_seq.cpp: * tests/Param_Test/bd_wstring.h: * tests/Param_Test/bd_wstring.cpp: * tests/Param_Test/big_union.h: * tests/Param_Test/big_union.cpp: * tests/Param_Test/complex_any.h: * tests/Param_Test/complex_any.cpp: * tests/Param_Test/except.h: * tests/Param_Test/except.cpp: * tests/Param_Test/fixed_array.h: * tests/Param_Test/fixed_array.cpp: * tests/Param_Test/fixed_struct.h: * tests/Param_Test/fixed_struct.cpp: * tests/Param_Test/multdim_array.h: * tests/Param_Test/multdim_array.cpp: * tests/Param_Test/nested_struct.h: * tests/Param_Test/nested_struct.cpp: * tests/Param_Test/objref.h: * tests/Param_Test/objref.cpp: * tests/Param_Test/objref_struct.h: * tests/Param_Test/objref_struct.cpp: * tests/Param_Test/recursive_struct.h: * tests/Param_Test/recursive_struct.cpp: * tests/Param_Test/recursive_union.h: * tests/Param_Test/recursive_union.cpp: * tests/Param_Test/short.h: * tests/Param_Test/short.cpp: * tests/Param_Test/typecode.h: * tests/Param_Test/typecode.cpp: * tests/Param_Test/ub_any_seq.h: * tests/Param_Test/ub_any_seq.cpp: * tests/Param_Test/ub_array_seq.h: * tests/Param_Test/ub_array_seq.cpp: * tests/Param_Test/ub_long_seq.h: * tests/Param_Test/ub_long_seq.cpp: * tests/Param_Test/ub_objref_seq.h: * tests/Param_Test/ub_objref_seq.cpp: * tests/Param_Test/ub_short_seq.h: * tests/Param_Test/ub_short_seq.cpp: * tests/Param_Test/ub_str_seq.h: * tests/Param_Test/ub_str_seq.cpp: * tests/Param_Test/ub_string.h: * tests/Param_Test/ub_string.cpp: * tests/Param_Test/ub_struct_seq.h: * tests/Param_Test/ub_struct_seq.cpp: * tests/Param_Test/ub_wstr_seq.h: * tests/Param_Test/ub_wstr_seq.cpp: * tests/Param_Test/ub_wstring.h: * tests/Param_Test/ub_wstring.cpp: * tests/Param_Test/ulonglong.h: * tests/Param_Test/ulonglong.cpp: * tests/Param_Test/var_array.h: * tests/Param_Test/var_array.cpp: * tests/Param_Test/var_struct.h: * tests/Param_Test/var_struct.cpp: We now use the standard <<= and >>= operators to test DII. We also use the add_in_arg(), add_out_arg() and add_inout_arg() helper methods. The add_args() method was removed because it relied on the non-portable, deprecated and ugly replace() operation in CORBA::Any. The SII tests are all passing, most of the DII tests pass too, but these changes uncovered several problems with the implementation of deep_free(), since deep_free has to be removed we better wait for those changes instead of trying to support the current scheme. * tao/IIOP_Profile.cpp: * tao/SHMIOP_Profile.cpp: * tao/UIOP_Profile.cpp: Cosmetic fixes. Tue Mar 21 11:29:05 2000 Balachandran Natarajan * tao/GIOP_Server_Request.h: Made some cosmetic changes. Tue Mar 21 10:00:11 2000 Balachandran Natarajan * tao/GIOP_Utils.cpp (convert_CORBA_to_GIOP_exception): Removed unnecessary ACE_DEBUG statements. Mon Mar 20 19:59:45 2000 Carlos O'Ryan * orbsvcs/orbsvcs/Event/EC_Copy_On_Write.cpp: Fixed problem on exceptions without native C++ exception support. Mon Mar 20 18:16:20 2000 Ossama Othman * tao/UIOP_Acceptor.h: Removed inclusion of `tao/GIOP_Message_State.h'. It isn't needed by the TAO_UIOP_Acceptor class. * tao/Makefile: Updated dependencies. Mon Mar 20 17:27:58 2000 Darrell Brunsch * tests/DynAny_Test/basic_test.dsp: * tests/Param_Test/client.dsp: * tests/Param_Test/server.dsp: The IDL files in these directories use orb.idl. Added the -I command to the custom compilation for these files so they can find orb.idl. Mon Mar 20 16:54:20 2000 Carlos O'Ryan * orbsvcs/tests/Event/Performance/Makefile: * orbsvcs/tests/Event/Performance/Inversion.h: * orbsvcs/tests/Event/Performance/Inversion.cpp: * orbsvcs/tests/Event/Performance/Inversion.dsp: * orbsvcs/tests/Event/Event.dsw: * orbsvcs/tests/Event/Performance/Throughput.dsp: * orbsvcs/tests/Event/Performance/Connect.dsp: * orbsvcs/tests/Event/Performance/ECPerformance.dsw: Add the new test to the project files. Some older project files were updated simultaneously, to make them all consistent. * orbsvcs/orbsvcs/Event/EC_Dispatching_Task.h: Fixed the export macro to fit the new standard set by Darrell. Mon Mar 20 17:03:54 2000 Jeff Parsons * TAO_IDL/be/be_visitor_exception/exception_ch.cpp: * TAO_IDL/be/be_visitor_operation/ami_exception_holder_operation_cs.cpp: Removed more of the unnecessary generation of code using 'foo_ptr' if foo is an exception. Mon Mar 20 15:11:56 2000 Jeff Parsons * tao/TAO.dsp: * tao/TAO_static.dsp: Removed target_identifier.* and GIOP_Assorted_Headers.*, and added target_specification.*, GIOP_Message_Headers.* and GIOP_Message_State.*, as per Balas ChangeLog entry of Sun Mar 19 19:22:34 2000. Mon Mar 20 12:36:29 2000 Carlos O'Ryan * orbsvcs/orbsvcs/Event/EC_Copy_On_Write.h: * orbsvcs/orbsvcs/Event/EC_Copy_On_Write.i: * orbsvcs/orbsvcs/Event/EC_Copy_On_Write.cpp: * orbsvcs/orbsvcs/Event/EC_Dispatching.h: * orbsvcs/orbsvcs/Event/EC_Default_Factory.cpp: Add support for the Copy-on-Write dispatching strategy. * orbsvcs/orbsvcs/Event/EC_Dispatching_Task.h: * orbsvcs/orbsvcs/Event/EC_Dispatching_Task.i: * orbsvcs/orbsvcs/Event/EC_Dispatching_Task.cpp: We can now bound the number of messages in the queue. This throttles the supplier threads and results in bounded resource requirements, but worse performance in some cases. It also changes dispatching because it is now possible to block while pushing an event into a queue, so the mutexes held in the supplier proxy must be released before dispatching. This makes reactive dispatching and MT dispatching more similar, but increases the synchronization overhead. * orbsvcs/orbsvcs/Event/EC_Dispatching.cpp: * orbsvcs/orbsvcs/Event/EC_MT_Dispatching.h: * orbsvcs/orbsvcs/Event/EC_MT_Dispatching.cpp: * orbsvcs/orbsvcs/Event/EC_Priority_Dispatching.h: * orbsvcs/orbsvcs/Event/EC_Priority_Dispatching.cpp: * orbsvcs/orbsvcs/Event/EC_ProxySupplier.h: * orbsvcs/orbsvcs/Event/EC_ProxySupplier.cpp: Changed to support the new dispatching interfaces. * orbsvcs/orbsvcs/Event/EC_Proxy_Collection.i: * orbsvcs/orbsvcs/Event/EC_Proxy_Collection.cpp: Moved code from the .i to the .cpp file, they are virtual functions anyway. * orbsvcs/orbsvcs/AV/AVStreams_i.cpp: Fixed compilation warnings under gcc-2.95 Sun Mar 19 20:01:20 2000 Balachandran Natarajan * tests/AMI/Makefile: * tests/CDR/Makefile: * tests/Collocation/Makefile: * tests/Connection_Purging/Makefile: * tests/DSI_Gateway/Makefile: * tests/DynAny_Test/Makefile: * tests/Endpoint_Per_Priority/Makefile: * tests/Explicit_Event_Loop/Makefile: * tests/FL_Cube/Makefile: * tests/Faults/Makefile: * tests/IDL_Test/Makefile: * tests/IORManipulation/Makefile: * tests/InterOp-Naming/Makefile: * tests/Interceptors/Makefile: * tests/Leader_Followers/Makefile: * tests/MProfile/Makefile: * tests/MProfile_Forwarding/Makefile: * tests/MT_Client/Makefile: * tests/MT_Server/Makefile: * tests/Multiple_Inheritance/Makefile: * tests/Native_Exceptions/Makefile: * tests/NestedUpcall/Makefile: * tests/Nested_Event_Loop/Makefile: * tests/ORB_init/Makefile: * tests/OctetSeq/Makefile: * tests/POA/Destruction/Makefile: * tests/POA/Decativation/Makefile: * tests/POA/Identity/Makefile: * tests/Param_Test/Makefile: * tests/QtTests/Makefile: * tests/Smart_Proxies/Makefile: * tests/Timed_Buffered_Oneways/Makefile: * tests/Timeout/Makefile: * tests/Xt_Stopwatch/Makefile: Updated the following Makefiles depedencies. The need arose as I retired some files from the repository and added new files in their place. Please see the change below. Sun Mar 19 19:22:34 2000 Balachandran Natarajan * tao/GIOP_Message_Accept_State.cpp: * tao/GIOP_Message_Accept_State.h: * tao/GIOP_Message_Accept_State.i: * tao/GIOP_Message_Acceptors.cpp: * tao/GIOP_Message_Acceptors.h: * tao/GIOP_Message_Acceptors.i: * tao/GIOP_Message_Base.cpp: * tao/GIOP_Message_Base.h: * tao/GIOP_Message_Base.i: * tao/GIOP_Message_Connectors.cpp: * tao/GIOP_Message_Connectors.h: * tao/GIOP_Message_Connectors.i: * tao/GIOP_Message_Lite.cpp: * tao/GIOP_Message_Lite.h: * tao/GIOP_Message_Lite.i: * tao/GIOP_Server_Request.cpp: * tao/GIOP_Server_Request.h: * tao/GIOP_Utils.cpp: * tao/GIOP_Utils.h: * tao/GIOP_Utils.i: Addressed most of Carlos's suggestion on Coding style and some design issues. Have left a few @@ answers for some of his questions. Some of his questions have a reply, that I will be implementing them shortly. * tao/target_specification.h: * tao/target_specification.cpp: * tao/target_specification.i: Added these files to the repository. They now will replace these three files that would be retired from the repository. * tao/target_identifier.h: * tao/target_identifier.cpp: * tao/target_identifier.i: Files retired from the repository. * tao/GIOP_Message_Headers.h: * tao/GIOP_Message_Headers.i: * tao/GIOP_Message_Headers.cpp: Added these files in to the repository in place of the following. * tao/GIOP_Assorted_Headers.h: * tao/GIOP_Assorted_Headers.cpp: * tao/GIOP_Assorted_Headers.i: Retired these files from the repository. * tao/GIOP_Message_State.h: * tao/GIOP_Message_State.cpp: * tao/GIOP_Message_State.i: Added these new files to the repository. Moved the definition of GIOP_Message_State class to this file from GIOP_Utils.h * tao/Invocation.cpp: * tao/Invocation.h: * tao/IIOP_Connect.cpp: * tao/IIOP_Connect.h: * tao/IIOP_Profile.h: * tao/IIOP_Transport.h: * tao/Reply_Dispatcher.h: * tao/SHMIOP_Connect.cpp: * tao/SHMIOP_Connect.h: * tao/SHMIOP_Profile.h: * tao/SHMIOP_Transport.h: * tao/Transport_Mux_Strategy.h: * tao/UIOP_Acceptor.h: * tao/UIOP_Connect.cpp: * tao/Pluggable.cpp: Changes that had to be done because of the above. The changes include change of method names, reducing unnecessary header file inclusions. * tao/Makefile: Updated the makefile with new files. I should also update the Makefiles in the different directories now. That would be the next. Sun Mar 19 15:33:25 2000 Darrell Brunsch First, some miscellaneous changes: * orbsvcs/CosEvent_Service/CosEvent_Service_Native.cpp: Not all paths were returning a value in main. Added a return 0; to fix it. * orbsvcs/orbsvcs/AV/AVStreams_i.cpp: Some template definitions macros were using TAO_ORBSVCS still, changed to TAO_AV. * orbsvcs/tests/Trading/Simple_Dynamic.h: Still some inheritance by dominance warnings hanging around. Disabled in MSVC. * orbsvcs/examples/CosEC/Factory/Factory.dsw: Added a dependency between client and server. Now, the big stuff. I broke up the orbsvcs library in MSVC into separate libraries for each component. THIS BREAKS CURRENT PROJECT FILES. I fixed all of them in TAO, but any external projects that use orbsvcs must change the link libraries to the specific ones listed below. So now we have: TAO_AV (already there) TAO_CosConcurrency TAO_CosEvent TAO_CosLifeCycle TAO_CosNaming TAO_CosNotification TAO_CosProperty TAO_CosTime TAO_CosTrading TAO_DSLogAdmin TAO_RTEvent TAO_RTSched TAO_Svc_Utils Each library has both the client and server code. Each one had to have its TAO_ORBSVCS_Export macro removed and replaced with a library specific version, and many files were changed to include the appropriate *_export.h file. There are several reasons for this change. - Orbsvcs was too brittle. If one thing failed to build, the whole library was lost. - Orbsvcs was too big. This didn't reduce the size, but it is more manageable since only what is needed can be included. So this has a positive effect on footprint also. For example, if the project was only using the Naming Service, it had to link in a 9MB orbsvcsd.dll, whereas now it only needs a 360k TAO_CosNamingd.dll library. - Subsetting wasn't supported with MSVC project files. This isn't exactly subsetting, but it is more flexible and has the same benefits. - I just found out Minimum CORBA was useless with MSVC since not all of orbsvcs can be used with a Minimum TAO. There are some files still in TAO/orbsvcs/orbsvcs/ that really should be in the subdirectories. A later time, perhaps, let's see how this is handled on the Makefile side first. But if I remember correctly, this will probably be the path taken by the AutoCompile scripts. Note, this is ONLY with MSVC. The makefiles will still support the old subset technique until someone else feels inclined to change it. This does depend on the fact that the export macros expand to nothing in Unix. Oh well, we'll see how correct I am soon, after I do a test run on Unix after checking in. And also Note: The release builds of several projects give warnings because libraries had to be linked in to succeed, but then the linker determined the library wasn't actually needed. I couldn't find an easy fix, so I just left them for now. And finally Note: This only applies to the DLL Debug and Release versions. The Alpha versions have pretty much been deprecated, and the static versions are missing. The static versions will be added later, and I'm hoping to find an easy way to generate them from the DLL versions. The same applies to the MFC versions. And I'm unsure about Borland, but that will be fixed also. * orbsvcs/orbsvcs/orbsvcs.dsp: (removed) * orbsvcs/orbsvcs/AV.dsp * orbsvcs/orbsvcs/CosConcurrency.dsp: (added) * orbsvcs/orbsvcs/CosEvent.dsp: (added) * orbsvcs/orbsvcs/CosLifeCycle.dsp: (added) * orbsvcs/orbsvcs/CosNaming.dsp: (added) * orbsvcs/orbsvcs/CosNotification.dsp: (added) * orbsvcs/orbsvcs/CosProperty.dsp: (added) * orbsvcs/orbsvcs/CosTime.dsp: (added) * orbsvcs/orbsvcs/CosTrading.dsp: (added) * orbsvcs/orbsvcs/DSLogAdmin.dsp: (added) * orbsvcs/orbsvcs/RTEvent.dsp: (added) * orbsvcs/orbsvcs/RTSched.dsp: (added) * orbsvcs/orbsvcs/Svc_Utils.dsp: (added) Removed the orbsvcs.dsp file, and replaced with separate projects. Also modified AV.dsp a little to be consistent. * orbsvcs/orbsvcs/orbsvcs.dsw: * TAOACE.dsw: Changed these workspaces to use the new projects. TAOACE only includes CosNaming and Svc_utils though. * orbsvcs/orbsvcs/svc_utils_export.h: (added) * orbsvcs/orbsvcs/Concurrency/concurrency_export.h: (added) * orbsvcs/orbsvcs/CosEvent/event_export.h: (added) * orbsvcs/orbsvcs/Event/event_export.h: (added) * orbsvcs/orbsvcs/LifeCycle/lifecycle_export.h: (added) * orbsvcs/orbsvcs/Log/log_export.h: (added) * orbsvcs/orbsvcs/Naming/naming_export.h: (added) * orbsvcs/orbsvcs/Notify/notify_export.h: (added) * orbsvcs/orbsvcs/Property/property_export.h: (added) * orbsvcs/orbsvcs/Sched/sched_export.h: (added) * orbsvcs/orbsvcs/Time/time_export.h: (added) * orbsvcs/orbsvcs/Trader/trading_export.h: (added) Since each library needs its own Export macros, they each needed their own export file. orbsvcs_export is still around for backwards compatibility (so the makefiles work). * orbsvcs/orbsvcs/CosEvent_Utilities.h: * orbsvcs/orbsvcs/Event_Utilities.h: * orbsvcs/orbsvcs/IOR_Multicast.h: * orbsvcs/orbsvcs/Runtime_Scheduler.h: * orbsvcs/orbsvcs/Scheduler_Factory.h: * orbsvcs/orbsvcs/Scheduler_Utilities.h: * orbsvcs/orbsvcs/Time_Utilities.h: * orbsvcs/orbsvcs/AV/RTCP.h: * orbsvcs/orbsvcs/AV/RTP.h: * orbsvcs/orbsvcs/AV/TCP.h: * orbsvcs/orbsvcs/AV/UDP.h: * orbsvcs/orbsvcs/AV/sfp.h: * orbsvcs/orbsvcs/AV/source.i: * orbsvcs/orbsvcs/Concurrency/CC_Lock.h: * orbsvcs/orbsvcs/Concurrency/CC_LockSet.h: * orbsvcs/orbsvcs/Concurrency/CC_LockSetFactory.h: * orbsvcs/orbsvcs/Concurrency/Concurrency_Utils.h: * orbsvcs/orbsvcs/CosEvent/CEC_ConsumerAdmin.h: * orbsvcs/orbsvcs/CosEvent/CEC_ConsumerControl.h: * orbsvcs/orbsvcs/CosEvent/CEC_Default_Factory.h: * orbsvcs/orbsvcs/CosEvent/CEC_Dispatching.h: * orbsvcs/orbsvcs/CosEvent/CEC_Dispatching_Task.h: * orbsvcs/orbsvcs/CosEvent/CEC_EventChannel.h: * orbsvcs/orbsvcs/CosEvent/CEC_Factory.h: * orbsvcs/orbsvcs/CosEvent/CEC_MT_Dispatching.h: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPullConsumer.h: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPullSupplier.h: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushConsumer.h: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushSupplier.h: * orbsvcs/orbsvcs/CosEvent/CEC_Pulling_Strategy.h: * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_ConsumerControl.h: * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_Pulling_Strategy.h: * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_SupplierControl.h: * orbsvcs/orbsvcs/CosEvent/CEC_SupplierAdmin.h: * orbsvcs/orbsvcs/CosEvent/CEC_SupplierControl.h: * orbsvcs/orbsvcs/CosEvent/ConsumerAdmin_i.h: * orbsvcs/orbsvcs/CosEvent/EventChannel_i.h: * orbsvcs/orbsvcs/CosEvent/ProxyPushConsumer_i.h: * orbsvcs/orbsvcs/CosEvent/ProxyPushSupplier_i.h: * orbsvcs/orbsvcs/CosEvent/SupplierAdmin_i.h: * orbsvcs/orbsvcs/Event/BCU.h: * orbsvcs/orbsvcs/Event/Dispatching_Modules.h: * orbsvcs/orbsvcs/Event/EC_And_Filter.h: * orbsvcs/orbsvcs/Event/EC_Basic_Factory.h: * orbsvcs/orbsvcs/Event/EC_Basic_Filter_Builder.h: * orbsvcs/orbsvcs/Event/EC_Bitmask_Filter.h: * orbsvcs/orbsvcs/Event/EC_Conjunction_Filter.h: * orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.h: * orbsvcs/orbsvcs/Event/EC_ConsumerControl.h: * orbsvcs/orbsvcs/Event/EC_Default_Factory.h: * orbsvcs/orbsvcs/Event/EC_Disjunction_Filter.h: * orbsvcs/orbsvcs/Event/EC_Dispatching.h: * orbsvcs/orbsvcs/Event/EC_Dispatching_Task.h: * orbsvcs/orbsvcs/Event/EC_Event_Channel.h: * orbsvcs/orbsvcs/Event/Event_Channel.cpp: * orbsvcs/orbsvcs/Event/EC_Factory.h: * orbsvcs/orbsvcs/Event/EC_Filter.h: * orbsvcs/orbsvcs/Event/EC_Filter_Builder.h: * orbsvcs/orbsvcs/Event/EC_Gateway.h: * orbsvcs/orbsvcs/Event/EC_Gateway_UDP.h: * orbsvcs/orbsvcs/Event/EC_MT_Dispatching.h: * orbsvcs/orbsvcs/Event/EC_Masked_Type_Filter.h: * orbsvcs/orbsvcs/Event/EC_Negation_Filter.h: * orbsvcs/orbsvcs/Event/EC_Null_Factory.h: * orbsvcs/orbsvcs/Event/EC_Null_Scheduling.h: * orbsvcs/orbsvcs/Event/EC_ObserverStrategy.h: * orbsvcs/orbsvcs/Event/EC_Per_Supplier_Filter.h: * orbsvcs/orbsvcs/Event/EC_Prefix_Filter_Builder.h: * orbsvcs/orbsvcs/Event/EC_Priority_Dispatching.h: * orbsvcs/orbsvcs/Event/EC_Priority_Scheduling.h: * orbsvcs/orbsvcs/Event/EC_ProxyConsumer.h: * orbsvcs/orbsvcs/Event/EC_ProxySupplier.h: * orbsvcs/orbsvcs/Event/EC_QOS_Info.h: * orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.h: * orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.h: * orbsvcs/orbsvcs/Event/EC_Reactive_Timeout_Generator.h: * orbsvcs/orbsvcs/Event/EC_Sched_Filter.h: * orbsvcs/orbsvcs/Event/EC_Sched_Filter_Builder.h: * orbsvcs/orbsvcs/Event/EC_Scheduling_Strategy.h: * orbsvcs/orbsvcs/Event/EC_SupplierAdmin.h: * orbsvcs/orbsvcs/Event/EC_SupplierControl.h: * orbsvcs/orbsvcs/Event/EC_Supplier_Filter.h: * orbsvcs/orbsvcs/Event/EC_Supplier_Filter_Builder.h: * orbsvcs/orbsvcs/Event/EC_Timeout_Filter.h: * orbsvcs/orbsvcs/Event/EC_Timeout_Generator.h: * orbsvcs/orbsvcs/Event/EC_Trivial_Supplier_Filter.h: * orbsvcs/orbsvcs/Event/EC_Type_Filter.h: * orbsvcs/orbsvcs/Event/EC_UDP_Admin.h: * orbsvcs/orbsvcs/Event/Event_Channel.h: * orbsvcs/orbsvcs/Event/Event_Manip.h: * orbsvcs/orbsvcs/Event/Fast_Reactor.h: * orbsvcs/orbsvcs/Event/GPlot_File.h: * orbsvcs/orbsvcs/Event/Memory_Pools.h: * orbsvcs/orbsvcs/Event/Module_Factory.h: * orbsvcs/orbsvcs/Event/RT_Task.h: * orbsvcs/orbsvcs/Event/ReactorTask.h: * orbsvcs/orbsvcs/Event/Timer_Module.h: * orbsvcs/orbsvcs/Log/BasicLogFactory_i.h: * orbsvcs/orbsvcs/Log/BasicLog_i.h: * orbsvcs/orbsvcs/Log/Iterator_i.h: * orbsvcs/orbsvcs/Log/LogMgr_i.h: * orbsvcs/orbsvcs/Log/LogRecordStore.h: * orbsvcs/orbsvcs/Log/Log_Constraint_Interpreter.h: * orbsvcs/orbsvcs/Log/Log_Constraint_Visitors.h: * orbsvcs/orbsvcs/Log/Log_i.h: * orbsvcs/orbsvcs/Naming/Entries.h: * orbsvcs/orbsvcs/Naming/Hash_Naming_Context.h: * orbsvcs/orbsvcs/Naming/Naming_Context_Interface.h: * orbsvcs/orbsvcs/Naming/Naming_Utils.h: * orbsvcs/orbsvcs/Naming/Persistent_Context_Index.h: * orbsvcs/orbsvcs/Naming/Persistent_Entries.h: * orbsvcs/orbsvcs/Naming/Persistent_Naming_Context.h: * orbsvcs/orbsvcs/Naming/Transient_Naming_Context.h: * orbsvcs/orbsvcs/Notify/Notify_Constraint_Interpreter.h: * orbsvcs/orbsvcs/Notify/Notify_Constraint_Visitors.h: * orbsvcs/orbsvcs/Notify/Notify_ConsumerAdmin_i.h: * orbsvcs/orbsvcs/Notify/Notify_EventChannelFactory_i.h: * orbsvcs/orbsvcs/Notify/Notify_EventChannel_i.h: * orbsvcs/orbsvcs/Notify/Notify_FilterAdmin_i.h: * orbsvcs/orbsvcs/Notify/Notify_FilterFactory_i.h: * orbsvcs/orbsvcs/Notify/Notify_Filter_i.h: * orbsvcs/orbsvcs/Notify/Notify_ProxyConsumer_T.h: * orbsvcs/orbsvcs/Notify/Notify_ProxyPushConsumer_i.h: * orbsvcs/orbsvcs/Notify/Notify_ProxyPushSupplier_i.h: * orbsvcs/orbsvcs/Notify/Notify_ProxySupplier_T.h: * orbsvcs/orbsvcs/Notify/Notify_Proxy_T.h: * orbsvcs/orbsvcs/Notify/Notify_QoSAdmin_i.h: * orbsvcs/orbsvcs/Notify/Notify_SequenceProxyPushConsumer_i.h: * orbsvcs/orbsvcs/Notify/Notify_SequenceProxyPushSupplier_i.h: * orbsvcs/orbsvcs/Notify/Notify_StructuredProxyPushConsumer_i.h: * orbsvcs/orbsvcs/Notify/Notify_StructuredProxyPushSupplier_i.h: * orbsvcs/orbsvcs/Notify/Notify_StructuredPushConsumer.h: * orbsvcs/orbsvcs/Notify/Notify_StructuredPushSupplier.h: * orbsvcs/orbsvcs/Notify/Notify_SupplierAdmin_i.h: * orbsvcs/orbsvcs/Notify/Notify_Types.h: * orbsvcs/orbsvcs/Property/CosPropertyService_i.h: * orbsvcs/orbsvcs/Sched/Config_Scheduler.h: * orbsvcs/orbsvcs/Sched/DynSched.h: * orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.h: * orbsvcs/orbsvcs/Sched/SchedEntry.h: * orbsvcs/orbsvcs/Sched/Scheduler.h: * orbsvcs/orbsvcs/Sched/Scheduler_Generic.h: * orbsvcs/orbsvcs/Sched/Strategy_Scheduler.h: * orbsvcs/orbsvcs/Time/TAO_TIO.h: * orbsvcs/orbsvcs/Time/TAO_Time_Service_Clerk.h: * orbsvcs/orbsvcs/Time/TAO_Time_Service_Server.h: * orbsvcs/orbsvcs/Time/TAO_UTO.h: * orbsvcs/orbsvcs/Time/Timer_Helper.h: * orbsvcs/orbsvcs/Trader/Constraint_Nodes.h: * orbsvcs/orbsvcs/Trader/Constraint_Visitors.h: * orbsvcs/orbsvcs/Trader/Interpreter.h: * orbsvcs/orbsvcs/Trader/Interpreter_Utils.h: * orbsvcs/orbsvcs/Trader/Service_Type_Repository.h: * orbsvcs/orbsvcs/Trader/Trader.h: * orbsvcs/orbsvcs/Trader/Trader_Utils.h: All these were changed to use the new library specific export macros and *_export files. * examples/Buffered_Oneways/client.dsp: * examples/Callback_Quoter/Consumer.dsp: * examples/Callback_Quoter/Notifier.dsp: * examples/Callback_Quoter/Supplier.dsp: * examples/Event_Comm/Consumer.dsp: * examples/Event_Comm/Notifier.dsp: * examples/Event_Comm/Supplier.dsp: * examples/OBV/Typed_Events/client.dsp: * examples/OBV/Typed_Events/server.dsp: * examples/Persistent_Grid/Persistent_Grid_Client_Files.dsp: * examples/Persistent_Grid/Persistent_Grid_Second_Client_Files.dsp: * examples/Persistent_Grid/Persistent_Grid_Server_Files.dsp: * examples/Quoter/Factory_Finder.dsp: * examples/Quoter/Generic_Factory.dsp: * examples/Quoter/client.dsp: * examples/Quoter/server.dsp: * examples/Simple/bank/client.dsp: * examples/Simple/bank/server.dsp: * examples/Simple/echo/client.dsp: * examples/Simple/echo/server.dsp: * examples/Simple/grid/client.dsp: * examples/Simple/grid/server.dsp: * examples/Simple/time/client.dsp: * examples/Simple/time/server.dsp: * examples/Simple/time-date/Time_Date.dsp: * examples/Simple/time-date/client.dsp: * examples/Simulator/DOVEMIB/DOVEMIB.dsp: * examples/Simulator/DOVEMIB/DOVEMIBx.dsp: * examples/Simulator/DOVEMIB/TestClient.dsp: * examples/Simulator/Event_Supplier/DualEC_Sup.dsp: * examples/Simulator/Event_Supplier/Event_Sup.dsp: * examples/Simulator/Event_Supplier/Logging_Sup.dsp: * examples/mfc/client.dsp: * examples/mfc/server.dsp: * orbsvcs/Concurrency_Service/Concurrency_Service.dsp: * orbsvcs/CosEvent_Service/CosEvent_Service.dsp: * orbsvcs/CosEvent_Service/CosEvent_Service_Native.dsp: * orbsvcs/Dump_Schedule/Dump_Schedule.dsp: * orbsvcs/Event_Service/Event_Service.dsp: * orbsvcs/ImplRepo_Service/implrepo.dsp: * orbsvcs/LifeCycle_Service/LifeCycle_Service.dsp: * orbsvcs/Naming_Service/NT_Naming_Service.dsp: * orbsvcs/Naming_Service/Naming_Service.dsp: * orbsvcs/Notify_Service/Notify_Service.dsp: * orbsvcs/Scheduling_Service/Scheduling_Service.dsp: * orbsvcs/Time_Service/Time_Service_Clerk.dsp: * orbsvcs/Time_Service/Time_Service_Server.dsp: * orbsvcs/Trading_Service/Trading_Service.dsp: * orbsvcs/examples/CosEC/Factory/FactoryClient.dsp: * orbsvcs/examples/CosEC/Factory/FactoryServer.dsp: * orbsvcs/examples/RtEC/Simple/EC_Simple_Consumer.dsp: * orbsvcs/examples/RtEC/Simple/EC_Simple_Service.dsp: * orbsvcs/examples/RtEC/Simple/EC_Simple_Supplier.dsp: * orbsvcs/tests/AVStreams/benchmark/av_benchmark_child.dsp: * orbsvcs/tests/AVStreams/benchmark/av_benchmark_client.dsp: * orbsvcs/tests/AVStreams/benchmark/av_benchmark_server.dsp: * orbsvcs/tests/Concurrency/CC_client.dsp: * orbsvcs/tests/EC_Basic/EC_Basic.dsp: * orbsvcs/tests/EC_Custom_Marshal/ECCM_Consumer.dsp: * orbsvcs/tests/EC_Custom_Marshal/ECCM_Supplier.dsp: * orbsvcs/tests/EC_Mcast/EC_Mcast.dsp: * orbsvcs/tests/EC_Multiple/EC_Multiple.dsp: * orbsvcs/tests/EC_Throughput/ECT_Consumer.dsp: * orbsvcs/tests/EC_Throughput/ECT_Supplier.dsp: * orbsvcs/tests/EC_Throughput/ECT_Throughput.dsp: * orbsvcs/tests/Event/Basic/Atomic_Reconnect.dsp: * orbsvcs/tests/Event/Basic/BCast.dsp: * orbsvcs/tests/Event/Basic/Bitmask.dsp: * orbsvcs/tests/Event/Basic/Complex.dsp: * orbsvcs/tests/Event/Basic/Disconnect.dsp: * orbsvcs/tests/Event/Basic/Gateway.dsp: * orbsvcs/tests/Event/Basic/MT_Disconnect.dsp: * orbsvcs/tests/Event/Basic/Negation.dsp: * orbsvcs/tests/Event/Basic/Observer.dsp: * orbsvcs/tests/Event/Basic/Reconnect.dsp: * orbsvcs/tests/Event/Basic/Schedule.dsp: * orbsvcs/tests/Event/Basic/Shutdown.dsp: * orbsvcs/tests/Event/Basic/Timeout.dsp: * orbsvcs/tests/Event/Basic/Wildcard.dsp: * orbsvcs/tests/Event/Performance/Connect.dsp: * orbsvcs/tests/Event/Performance/Throughput.dsp: * orbsvcs/tests/Event/lib/ECTest.dsp: * orbsvcs/tests/Event_Latency/Event_Latency.dsp: * orbsvcs/tests/Property/client.dsp: * orbsvcs/tests/Property/server.dsp: * orbsvcs/tests/Sched_Conf/Sched_Conf.dsp: * orbsvcs/tests/Sched_Conf/Sched_Conf_Anomalies.dsp: * orbsvcs/tests/Sched_Conf/Sched_Conf_Runtime.dsp: * orbsvcs/tests/Simple_Naming/client.dsp: * orbsvcs/tests/Time/Time_Service_Test.dsp: * orbsvcs/tests/Trading/Colocated_Test.dsp: * orbsvcs/tests/Trading/Export_Test.dsp: * orbsvcs/tests/Trading/Import_Test.dsp: * tests/InterOp-Naming/client.dsp: * tests/InterOp-Naming/server.dsp: * tests/NestedUpcall/MT_Client_Test/client.dsp: * tests/NestedUpcall/MT_Client_Test/server.dsp: * tests/NestedUpcall/Triangle_Test/initiator.dsp: * tests/NestedUpcall/Triangle_Test/server_A.dsp: * tests/NestedUpcall/Triangle_Test/server_B.dsp: * utils/NamingViewer/NamingViewer.dsp: * utils/catior/catior.dsp: * utils/nslist/nslist.dsp: All these projects used the orbsvcs library, so all had to be changed to use the specific libraries instead. This was a good chance to go through all the different projects and make sure they work, a few did need some updating with release configurations, since they are not run that regularly here. Sun Mar 19 16:48:57 2000 Jeff Parsons * tao/Sequence_T.i: * tao/Sequence.i: The automatic buffer allocation in the bounded sequence default constructor was causing a problem with recursive structs/unions. Since the constructor was still executing, there would be an infinite loop of calls to 'new'. Buffer allocation has been moved to the length() function, so now bounded sequences behave like unbounced ones in TAO (the CORBA spec states that the default constructors for bounded or unbounded sequences need not allocate a buffer). Thanks to Sal Amander for reporting this problem. * tests/Param_Test/bd_long_seq.cpp: * tests/Param_Test/bd_short_seq.cpp: * tests/Param_Test/bd_struct_seq.cpp: Added initialization for certain paramters, needed because of the change in the behavior of the defaul constructor noted above. Sun Mar 19 16:46:36 2000 Balachandran Natarajan * orbsvcs/orbsvcs/Makefile: Updated dependencies. Thanks to JM Strauss for reporting this. The last update was the dumbest thing I could have done. I made the update in my workspace which had a skewed $TAO_ROOT/tao. These went in to the Makefile. Sat Mar 18 17:51:13 2000 David L. Levine * orbsvcs/examples/Quoter/client.cpp (init_naming_service): changed _ptr's to *'s. * orbsvcs/examples/Quoter/Quoter_i.cpp (copy): changed _ptr's to *'s. Sat Mar 18 17:45:32 2000 David L. Levine * orbsvcs/tests/Trading/Offer_Exporter.cpp (grab_offerids): changed _ptr's to *'s. * orbsvcs/tests/Trading/Offer_Importer.cpp (perform_queries_with_policies,display_results): changed _ptr's to *'s. Sat Mar 18 12:56:55 2000 Balachandran Natarajan * orbsvcs/orbsvcs/Makefile: Updated dependencies. Thanks to Dr.Levine for reporting this. Sat Mar 18 07:30:20 2000 David L. Levine * orbsvcs/LifeCycle_Service/Factory_Trader.cpp: changed _ptr's to *'s. Sat Mar 18 05:34:48 2000 Nanbor Wang * tao/*.h: * orbsvcs/orbsvcs/*.h: Applied alignment preserving code. * TAO_IDL/be/be_args.cpp: * TAO_IDL/be/be_codegen.cpp: * TAO_IDL/include/idl_global.h: * TAO_IDL/util/utl_global.cpp: Added new compiler flags -Wb,pre_include and -Wb,post_include. They specify the names of include files that will be included at the beginning and ending of the generated header files. Currently used to include "ace/pre.h" and "ace/post.h." * orbsvcs/orbsvcs/orbsvcs.dsp: * orbsvcs/orbsvcs/orbsvcs_static.dsp: * orbsvcs/orbsvcs/Makefile: * orbsvcs/orbsvcs/Makefile.bor: Added the new tao_idl options to the tao_idl compiler flags in the orbsvcs makefiles. Too bad Darrell is going to removed orbsvcs.dsp and orbsvcs_static.dsp. ;-) Thanks to Christopher Kohlhoff for providing the patches. Sat Mar 18 01:33:47 2000 Nanbor Wang * orbsvcs/orbsvcs/Notify/Notify_ConsumerAdmin_i.cpp: Changed to use TAO_Notify_EventType::get_native to access the EventType. Thanks to Darrell for pointing this out. * orbsvcs/orbsvcs/Notify/Notify_Types.h: Undid my previous hack. Fri Mar 17 23:39:52 2000 Nanbor Wang * orbsvcs/orbsvcs/Notify/Notify_Types.h (class TAO_Notify_EventType): Hacked the class by adding friend class TAO_Notify_ConsumerAdmin_i; so that orbsvcs would compile. * orbsvcs/orbsvcs/Trader/Trader_Interfaces.cpp (federated_query): Changed _ptr's to *'s. Fri Mar 17 14:20:01 2000 Carlos O'Ryan * tao/GIOP_Assorted_Headers.h: * tao/GIOP_Message_Accept_State.h: * tao/GIOP_Message_Base.h: * tao/GIOP_Message_Base.i: * tao/GIOP_Message_Base.cpp: * tao/GIOP_Message_Connectors.h: * tao/GIOP_Message_Connectors.cpp: * tao/GIOP_Server_Request.h: * tao/Pluggable_Messaging.h: * tao/Pluggable_Messaging_Utils.h: * tao/Pluggable_Messaging_Utils.i: * tao/Pluggable_Messaging_Utils.cpp: * tao/operation_details.h: * tao/target_identifier.h: * tao/target_identifier.i: * tao/target_identifier.cpp: Made an overall review of Bala's coding style and basic design. Left many @@ comments for him. Fri Mar 17 14:17:00 2000 Shawn Hannan * orbsvcs/LifeCycle_Service/Criteria_Evaluator.cpp: * orbsvcs/tests/Property/client.cpp: Changed _ptr's to *'s. Fri Mar 17 13:04:34 2000 Balachandran Natarajan * tao/GIOP_Message_Lite.cpp: Fixed a couple of errors in old g++. Fri Mar 17 13:01:58 2000 David L. Levine * orbsvcs/orbsvcs/Property/CosPropertyService_i.cpp (delete_all_properties): changed a couple of _ptr's to *'s. Thu Mar 16 20:52:17 2000 Pradeep Gore * orbsvcs/orbsvcs/Log: changed _ptr to * in various places to fix compile errors. * orbsvcs/orbsvcs/Notify/Notify_Types.{h, cpp}: removed unnecessary string_dups in Notify_EventType * orbsvcs/examples/Notify/Subscribe/Subscribe.cpp: Fixed the example - the structured events were not being populated correctly. Thu Mar 16 17:52:03 2000 Jeff Parsons * tests/Param_Test/param_test_i.cpp: Removed uses of foo_ptr for non-interface types. These typedefs are no longer generated by the IDl compiler. Thu Mar 16 15:26:30 2000 Balachandran Natarajan * tao/GIOP_Message_Lite.cpp (parse_reply): * tao/GIOP_Message_Acceptors.cpp: * tao/GIOP_Message_Connectors.cpp: More warning fixes. These were in Digital Unix. Thanks to Jeff Parsons for reporting this. Thu Mar 16 13:22:02 2000 Ossama Othman * tao/IIOP_Acceptor.cpp (open_default): Do not return with error if ACE::get_ip_interfaces() sets errno to ENOTSUP. Simply use the default interface instead, since ACE::get_ip_interfaces() is not supported on some platforms. This should correct a problem experienced on VxWorks. Thu Mar 16 14:20:59 2000 Jeff Parsons * TAO_IDL/be/be_codegen.cpp: When generating implementation files (-GI option), the implementation header file had the inclusion of the skeleton header file and the '#pragma once' in the wrong order. Thanks to Byron Harris for pointing this out. This closes out Bugzilla #478. Thu Mar 16 13:57:18 2000 Balachandran Natarajan * tao/target_identifier.h (class TAO_Target_Specification): * tao/target_identifier.i: Fixed a warning from Digital Unix compiler (cxx). Thanks to Jeff Parsons for reporting this. Thu Mar 16 13:53:06 2000 Jeff Parsons * TAO_IDL/ast/ast_interface.cpp: Fixed an inheritance problem when a module is reopened by inclusion. Thanks to Brian Wright for reporting this bug. * TAO_IDL/include/utl_scope.h: * TAO_IDL/util/utl_scope.cpp: * TAO_IDL/ast/ast_operation.cpp: Another inheritance problem when a module is reopened by inclusion. To fix this bug, changes were also made to ast_interface.cpp listed above. Thanks to Michael Kircher for reporting this one. * TAO_IDL/be/be_visitor_typecode/typecode_defn.cpp: Disabled the exclusion (for all data types) of the repository id from optimized typecodes (it was already disabled for interfaces, valuetypes and exceptions, as required by the spec). It proved to be an unpopular feature, causing performace slowdowns disproportionate to its value in decreasing typecode size. Thanks to Hugh Arnold for pointing this out. * TAO_IDL/be/be_visitor_exception/exception_ch.cpp: * TAO_IDL/be/be_visitor_exception/exception_cs.cpp: * TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp: * TAO_IDL/be/be_visitor_union/union_ch.cpp: Removed generation of 'typedef foo *foo_ptr' and 'typedef foo_ptr _ptr_type' for these types. This has already been removed to structs - these typedefs should be there only for interfaces and valuetypes. Thanks to Chris Cleeland for pointing this out. Thu Mar 16 13:26:09 2000 Balachandran Natarajan * performance-tests/Cubit/TAO/MT_Cubit/run_test.pl: Forgot to checkin the run_test.pl. This will now use the service configurator file instead of the -ORBGIOPlite command line option. Thu Mar 16 13:22:43 2000 Balachandran Natarajan * utils/catior/Makefile: * utils/nslist/Makefile: Some more Makefile updates. Thu Mar 16 13:02:45 2000 Balachandran Natarajan * orbsvcs/Naming_Service/Makefile: * orbsvcs/Scheduling_Service/Makefile: * orbsvcs/Event_Service/Makefile: * orbsvcs/Dump_Schedule/Makefile: * orbsvcs/Time_Service/Makefile: * orbsvcs/CosEvent_Service/Makefile: * orbsvcs/ImplRepo_Service/Makefile: * orbsvcs/LifeCycle_Service/Makefile: * orbsvcs/Logging_Service/Makefile: * orbsvcs/Trading_Service/Makefile: * examples/Callback_Quoter/Makefile: * examples/Simple/time-date/Makefile: * examples/Load_Balancing/Makefile: * examples/Buffered_Oneways/Makefile: * performance-tests/Cubit/TAO/MT_Cubit/Makefile: * performance-tests/Cubit/TAO/DII_Cubit/Makefile: * performance-tests/POA/Object_Creation_And_Registration/Makefile: * performance-tests/Pluggable/Makefile: * performance-tests/Thruput/TAO/Makefile: * performance-tests/RTCorba/Oneways/Reliable/Makefile: * performance-tests/Latency/Makefile: * tests/InterOp-Naming/Makefile: Updated these Makefiles. Thanks to our daily builds that catches things better than a human. Thu Mar 16 12:34:58 2000 Jeff Parsons * tao/InterfaceS.h: * tao/InterfaceS.i: * tao/InterfaceS.cpp: * POA_CORBA.h: * Makefile: * Makefile.am: * makefile.bor: * TAO.dsp: * TAO_static.dsp: Server-side interface repository files and related changes. I didn't want to add these to TAO, but the Interface Repository IDL isn't inside its own module - it's all in the CORBA namespace. The added files are large but, like InterfaceC.*, they will not build unless TAO_HAS_INTERFACE_REPOSITORY == 1. Thu Mar 16 11:40:03 2000 Balachandran Natarajan * tao/GIOP_Message_Base.h: Cosmetic changes. * tao/GIOP_Utils.h: Fixed a compilation error that arises if compiled with interface_repo=1. Thanks to Jeff Parsons for reporting this. Thu Mar 16 11:23:54 2000 Balachandran Natarajan * docs/pluggable_messaging.html: Documentation for the Pluggable_Messaging framework. Thu Mar 16 09:19:13 2000 Balachandran Natarajan * tao/GIOP_Message_Lite.cpp: Added an include file to fix compilation errors in Linux, MINIMUM_CORBA build. The surprising part was that the regular build never caught this error. Thu Mar 16 09:15:02 2000 Balachandran Natarajan * tao/target_identifier.h (class TAO_Target_Specification): Removed the return type qualifier const for the method iop_ior (). IRIX & KAI compilers complained about this. Wed Mar 15 23:56:37 2000 Nanbor Wang * tao/IIOP_Transport.cpp: * tao/UIOP_Transport.cpp: Fixed some minor warnings on NT. The string "*/*" confused NT. BTW, UIOP is not compiled under NT. ;-) Wed Mar 15 22:02:22 2000 Balachandran Natarajan * performance-tests/Cubit/TAO/IDL_Cubit/iiop_lite.conf: * performance-tests/Cubit/TAO/IDL_Cubit/uiop_lite.conf: Added these new service configurator files. * performance-tests/Cubit/TAO/IDL_Cubit/run_test.pl: Changed the script for using GIOPlite. Wed Mar 15 21:50:42 2000 Balachandran Natarajan * tao/TAO.dsp: Added new files to the project. Many thanks to Angelo Corsaro who helped me with this. Wed Mar 15 20:26:13 2000 Balachandran Natarajan * examples/AMI/FL_Callback/Makefile: * examples/Buffered_AMI/Makefile: * examples/Callback_Quoter/Makefile: * examples/Event_Comm/Makefile: * examples/Load_Balancing/Makefile: * examples/Load_Balancing_persistent/Makefile: * examples/Logging/Makefile: * examples/OBV/Typed_Events/Makefile: * examples/POA/Generic_Servant/Makefile: * examples/POA/Adapter_Activator/Makefile: * examples/POA/DSI/Makefile: * examples/POA/Default_Servant/Makefile: * examples/POA/Explicit_Activation/Makefile: * examples/POA/FindPOA/Makefile: * examples/POA/Forwarding/Makefile: * examples/POA/Generic_Servant/Makefile: * examples/POA/Loader/Makefile: * examples/POA/NewPOA/Makefile: * examples/POA/On_Demand_Activation/Makefile: * examples/POA/On_Demand_Loading/Makefile: * examples/POA/Reference_Counted_Servant/Makefile: * examples/POA/RootPOA/Makefile: * examples/POA/TIE/Makefile: Updated all these Makefiles. Wed Mar 15 19:49:35 2000 Balachandran Natarajan * tests/OctetSeq/Makefile: * tests/Param_Test/Makefile: * tests/AMI/Makefile: * tests/CDR/Makefile: * tests/Connection_Purging/Makefile: * tests/DSI_Gateway/Makefile: * tests/DynAny_Test/Makefile: * tests/Endpoint_Per_Priority/Makefile: * tests/Explicit_Event_Loop/Makefile: * tests/Faults/Makefile: * tests/IDL_Test/Makefile: * tests/IORManipulation/Makefile: * tests/Interceptors/Makefile: * tests/Leader_Followers/Makefile: * tests/MProfile/Makefile: * tests/MProfile_Forwarding/Makefile: * tests/MT_Client/Makefile: * tests/MT_Server/Makefile: * tests/Multiple_Inheritance/Makefile: * tests/NestedUpcall/MT_Client_Test/Makefile: * tests/NestedUpcall/Triangle_Test/Makefile: * tests/NestedUpcall/Simple/Makefile: * tests/Nested_Event_Loop/Makefile: * tests/ORB_init/Makefile: * tests/POA/Deactivation/Makefile: * tests/POA/Destruction/Makefile: * tests/POA/Identity/Makefile: * tests/FL_Cube/Makefile: * tests/Smart_Proxies/Makefile: * tests/Smart_Proxies/On_Demand/Makefile: * tests/Timed_Buffered_Oneways/Makefile: * tests/Timeout/Makefile: * tests/Xt_Stopwatch/Makefile: Updated all these Makefiles to change the dependency on GIOP.h. Wed Mar 15 19:46:36 2000 Balachandran Natarajan * tao/GIOP.cpp: * tao/GIOP.h: * tao/GIOP.i: Removed these files from the repository. Wed Mar 15 19:39:20 2000 Balachandran Natarajan * tao/Makefile: Upadted the Makefile. Wed Mar 15 19:20:17 2000 Balachandran Natarajan * tao/Acceptor_Registry.cpp: * tao/Active_Object_Map.cpp: * tao/Asynch_Invocation.h: * tao/BoundsC.cpp: * tao/Buffering_Constraint_Policy.cpp: * tao/Buffering_Constraint_Policy.i: * tao/CDR.cpp: * tao/CDR.h: * tao/CONV_FRAMEC.h: * tao/Client_Priority_Policy.cpp: * tao/Client_Priority_Policy.i: * tao/Connector_Registry.i: * tao/CurrentC.cpp: * tao/DomainC.cpp: * tao/DomainC.h: * tao/DomainS.cpp: * tao/DynEnum_i.cpp: * tao/DynStruct_i.cpp: * tao/DynUnion_i.cpp: * tao/Environment.cpp: * tao/IOPC.cpp: * tao/IOPC.h: * tao/IORC.cpp: * tao/IORC.h: * tao/IOR_LookupTable.cpp: Picky cvs conflict resolution. No major changes but for removing the conflicts. Conflicts were not in the code at all. Wed Mar 15 19:10:55 2000 Balachandran Natarajan * tao/Acceptor_Impl.h (TAO_ACCEPTOR_IMPL_H): * tao/Acceptor_Impl.i: * tao/Acceptor_Impl.cpp:Added an argument to the constructor of TAO_Creation_Strategy. Wed Mar 15 19:05:53 2000 Balachandran Natarajan * tao/Protocol_Factory.h: * tao/Transport_Mux_Strategy.h: * tao/ORB.cpp: * tao/ORB.h: * tao/skip.cpp: * tao/decode.cpp: * tao/append.cpp: * tao/SHMIOP_Profile.h: * tao/SHMIOP_Profile.cpp: * tao/UIOP_Profile.cpp: * tao/Object.cpp: * tao/Stub.cpp: * tao/corba.h: * tao/Server_Request.h: * tao/Typecode_Constants.cpp: Removed the header file GIOP.h from these files. GIOP.h would be retired now. Wed Mar 15 18:22:52 2000 Balachandran Natarajan * tao/GIOPC.cpp: * tao/GIOPC.i: * tao/GIOPC.h: Removed some generated code for sequence. TAO has this in abundance and it would be better to reuse them. * tao/GIOP_Server_Request.cpp: * tao/GIOP_Server_Request.h: * tao/GIOP_Server_Request.i: Removed the header parsing code from the class. It has now been moved to the right version dependant acceptor side code which will do the right parse and store the info in this class. To facilitate the holding the parsed information in this class, new methods have been added. * tao/IIOP_Acceptor.cpp * tao/IIOP_Acceptor.h * tao/IIOP_Connect.cpp * tao/IIOP_Connect.h * tao/IIOP_Connector.cpp * tao/IIOP_Connector.h * tao/IIOP_Factory.cpp * tao/IIOP_Factory.h * tao/IIOP_Profile.cpp * tao/IIOP_Profile.h * tao/IIOP_Profile.i * tao/IIOP_Transport.cpp * tao/IIOP_Transport.h * tao/Invocation.cpp * tao/Invocation.h * tao/Invocation.i * tao/Async_Invocation.cpp * tao/SHMIOP_Acceptor.cpp * tao/SHMIOP_Acceptor.h * tao/SHMIOP_Connect.cpp * tao/SHMIOP_Acceptor.i * tao/SHMIOP_Connect.h * tao/SHMIOP_Connect.i * tao/SHMIOP_Connector.cpp * tao/SHMIOP_Connector.h * tao/SHMIOP_Factory.cpp * tao/SHMIOP_Factory.h * tao/SHMIOP_Transport.cpp * tao/SHMIOP_Transport.h * tao/UIOP_Transport.h * tao/UIOP_Transport.cpp * tao/UIOP_Profile.cpp * tao/UIOP_Connector.h * tao/UIOP_Connector.cpp * tao/UIOP_Connect.cpp * tao/UIOP_Connect.h * tao/UIOP_Connect.i * tao/UIOP_Acceptor.h * tao/UIOP_Acceptor.cpp * tao/Request.cpp * tao/Pluggable.h * tao/Pluggable.i * tao/Pluggable.cpp: Changed the way GIOP code is handled by these classes. GIOP code was completely reentrant and so static calls were made to the GIOP code. But now the calls would be routed through a common interface. Further, changes were also made to remove the GIOP specific code from these files. * tao/params.cpp * tao/params.h * tao/params.i * tao/ORB_Core.i * tao/ORB_Core.h * tao/ORB_Core.cpp: Removed the command line option support for GIOPlite. The ORB's can be initilaised to use GIOPlite by loading the IIOP_Lite or UIOP_Lite factory from their service configurator file. Please see $TAO_ROOT/performance-tests/Cubit/TAO/IDL_Cubit for an example of how this is done. There is one problem however. ORB's can be initialised now with either IIOP or IIOP_Lite and not both. In other words, the user shouldn't try to load TCP/IP mapping of GIOP & GIOPlite for the same ORB. The same applies to the UNIX domain sockets mapping of GIOP & GIOPlite. * tao/Reply_Dispatcher.h * tao/Reply_Dispatcher.i * tao/Reply_Dispatcher.cpp: Removed GIOP_Version info. theyhave just been commented out. At a later stage we should be removing them. We shouldn't be doing any GIOP version specific processing in this piece of code. Wed Mar 15 17:34:47 2000 Balachandran Natarajan * tao/Pluggable_Messaging.cpp * tao/Pluggable_Messaging.h * tao/Pluggable_Messaging.i * tao/Pluggable_Messaging_Utils.h * tao/Pluggable_Messaging_Utils.cpp: * tao/Pluggable_Messaging_Utils.i: * tao/target_identifier.cpp: * tao/target_identifier.h: * tao/target_identifier.i * tao/operation_details.cpp * tao/operation_details.h * tao/operation_details.i * tao/GIOP_Assorted_Headers.cpp * tao/GIOP_Assorted_Headers.h * tao/GIOP_Assorted_Headers.i * tao/GIOP_Message_Accept_State.cpp * tao/GIOP_Message_Accept_State.h * tao/GIOP_Message_Accept_State.i * tao/GIOP_Message_Acceptors.cpp * tao/GIOP_Message_Acceptors.h * tao/GIOP_Message_Acceptors.i * tao/GIOP_Message_Base.cpp * tao/GIOP_Message_Base.h * tao/GIOP_Message_Base.i * tao/GIOP_Message_Connectors.cpp * tao/GIOP_Message_Connectors.h * tao/GIOP_Message_Connectors.i * tao/GIOP_Message_Lite.cpp * tao/GIOP_Message_Lite.h * tao/GIOP_Message_Lite.i * tao/IIOP_Lite_Factory.cpp * tao/IIOP_Lite_Factory.h * tao/GIOP_Utils.cpp * tao/GIOP_Utils.h * tao/GIOP_Utils.i * tao/IIOP_Transport.i * tao/IOP_Defns.h * tao/SHMIOP_Transport.i * tao/UIOP_Transport.i * tao/UIOP_Lite_Factory.cpp * tao/UIOP_Lite_Factory.h: Added these new files for the pluggable messaging framework. The above files contain the interfaces and a concrete implementation for GIOP & GIOPlite. Please see the documentation at $TAO_ROOT/docs/pluggable_messaging.html for more info. Wed Mar 15 17:32:51 2000 Balachandran * TAO version 1.1 released. Wed Mar 15 10:04:33 2000 Pradeep Gore * orbsvcs/examples/Notify/README: * orbsvcs/examples/Notify/Subscribe/README: Added README files. * orbsvcs/orbsvcs/Notify/README: Updated to reflect recent changes. Wed Mar 15 09:36:46 2000 David L. Levine * examples/Simple/time/README: reverted the note added by Tue Mar 14 14:37:58 2000 David L. Levine , because the following two changes of Jeff and Nanbor solved the problem. Tue Mar 14 17:48:04 2000 Jeff Parsons * tao/POAC.h: * tao/POAC.i: #if !defined guards around PortableServer::ForwardRequest and its Any and CDR operators were not consistent. Thanks to Darrell for pointing this out. Tue Mar 14 16:26:27 2000 Nanbor Wang * tao/POAC.cpp: The typecode for _tc_Current was not properly defined using TAO_NAMESPACE_blah macros. Applied those macros. Thanks to Pradeep and Darrell for noticing this. Tue Mar 14 14:37:58 2000 David L. Levine * examples/Simple/time/README: added note that this example will not work with -DTAO_HAS_MINIMUM_CORBA. Thanks to Dave Hall for this suggestion. Mon Mar 13 22:20:11 2000 Kirthika Parameswaran * tests/Smart_Proxies/On_Demand/svc.conf: Added a comment before $Id. Thanks to Bala of the DOC group for trying out this test. Mon Mar 13 18:20:11 2000 Darrell Brunsch * orbsvcs/orbscvs/orbsvcs.dsp: * orbsvcs/orbsvcs/orbsvcs_static.dsp: The CR/LF's were missing from the files. Redid Pradeeps changes. Mon Mar 13 17:48:23 2000 Yamuna Krishnamurthy * orbsvcs/tests/AVStreams/Pluggable/server.h: * orbsvcs/tests/AVStreams/Pluggable/server.cpp: * orbsvcs/tests/AVStreams/Multicast/server.h: * orbsvcs/tests/AVStreams/Multicast/server.cpp: * orbsvcs/tests/AVStreams/Full_Profile/server.h: * orbsvcs/tests/AVStreams/Full_Profile/server.cpp: * orbsvcs/tests/AVStreams/Multicas_Full_Profilet/server.h: * orbsvcs/tests/AVStreams/Multicast_Full_Profile/server.cpp: Replaced SERVER with FTP_SERVER as SERVER was reserved. Thanks to Norbert Krain for pointing this out and Bala for helping me debug this. Mon Mar 13 17:20:51 2000 Carlos O'Ryan * orbsvcs/tests/Event/lib/Counting_Supplier.cpp: Initialize the TTL field for the Gateway tests. Thanks to Bala for reporting this problem. Mon Mar 13 13:52:03 2000 Jeff Parsons * tao/Any.cpp: Inverted the logic of a boolean return value in the case where we do a CDR stream extraction in the >>= (to_object) operator. We were returning the negation of the success of the stream extraction. Thanks to Boris Sukholitko for pointing this out. Mon Mar 13 12:55:14 2000 Balachandran Natarajan * tests/Faults/run_test.pl: Removed the core file that gets generated in the test. The client is crashed to test the robustness of the server. Mon Mar 13 10:19:08 2000 Bala * TAO version 1.0.16 released. Sun Mar 12 21:10:13 2000 David L. Levine * many Makefiles: updated dependencies. Sun Mar 12 19:13:57 2000 Balachandran Natarajan * tao/GIOP_Server_Request.cpp: Initialized the variable sync_with_server_ in the constructors for the class TAO_GIOP_Server_Request. This was creating a problem for Endpoint_Per_Priority test which uses LOCATE_REQUEST to validate connections. The bug was actually nailed down by Marina Spivak . It was an awesome detective work by her to have nailed it down to the uninitialized variable in the class. Sun Mar 12 18:42:26 2000 Pradeep Gore * orbsvcs/orbscvs/orbsvcs.dsp: * orbsvcs/orbsvcs/orbsvcs_static.dsp: Updated Notify files. Sun Mar 12 10:23:21 2000 Pradeep Gore * orbsvcs/orbsvcs/Notify/Notify_Types.cpp: changed comment with multiple ???'s to fix vxworks compile warning. Sat Mar 11 14:32:34 2000 Pradeep Gore * Notify_SequenceProxyPushSupplier_i.cpp: Commented out unused parameters. Sat Mar 11 09:33:18 2000 Christopher Kohlhoff * orbsvcs/orbsvcs/Makefile.bor: updated to reflect current Notify service file configuration. Sat Mar 11 09:28:31 2000 David L. Levine * orbsvcs/orbsvcs/Makefile: updated dependencies. Fri Mar 10 18:56:25 2000 Pradeep Gore * orbsvcs/orbsvcs/Notify/Notify_ConsumerAdmin_i.{h,cpp}: Events no longer propogate through the ConsumerAdmin to reach proxy suppliers.Added register methods by which proxy suppliers register with the Consumer Admin which in turn subscribes them for the appropriate event types. Changes to create the sequence proxy supplier. * orbsvcs/orbsvcs/Notify/Notify_SupplierAdmin_i.{h,cpp}: Changes to create the sequence proxy consumer. * orbsvcs/orbsvcs/Notify/Notify_EventChannel_i.{h.cpp}: Changed incorrect usage of ._retn to .in. * orbsvcs/orbsvcs/Notify/Notify_EventChannelFactory_i.cpp: Changed incorrect usage of ._retn to .in. get_channel uses TAO_TRY_THROW now. * orbsvcs/orbsvcs/Notify/Notify_Event_Manager.{h, cpp}: Changed public functions to reflect the introduction of the TAIO_Notify_Event type. * orbsvcs/orbsvcs/Notify/Notify_FilterAdmin_i.{h,cpp}: removed ITERATOR typedef and its usage. * orbsvcs/orbsvcs/Notify/Notify_Listeners.h: added the ACE_TRY_ENV arg to dispatch_update. * orbsvcs/orbsvcs/Notify/Notify_ProxyConsumer_T.{h,cpp}: ProxyConsumer derives from TAO_Notify_Proxy. Removed the Filter and QoS methods. Added support for obtain_subscription_types. * orbsvcs/orbsvcs/Notify/Notify_ProxyPushConsumer_i.{h,cpp}: Added the TAO_Notify_CosEC_ProxyPushConsumer_i type to support backward compatibility with the CosEC spec. * orbsvcs/orbsvcs/Notify/Notify_ProxyPushSupplier_i.{h.cpp}: Added the TAO_Notify_CosEC_ProxyPushSupplier_i type to support backward compatibility with the CosEC spec. * orbsvcs/orbsvcs/Notify/Notify_ProxySupplier_T.{h.cpp}: ProxyConsumer derives from TAO_Notify_Proxy. Removed the Filter and QoS methods. Added support for suspend/resume connections. Added support for obtain_offered_types. * orbsvcs/orbsvcs/Notify/Notify_Resource_Manager.{h,cpp}: Added new option to determine if all new born ConsumerAdmins should be subscribed by default to receive all events. Added methods to create the new sequence consumer/supplier objects. * orbsvcs/orbsvcs/Notify/Notify_StructuredProxyPushConsumer_i.{h,cpp}: * orbsvcs/orbsvcs/Notify/Notify_StructuredProxyPushSupplier_i.{h.cpp}: Minor changes to support updates. * orbsvcs/orbsvcs/Notify/Notify_Types.{h,cpp}: Introduced the TAO_Notify_Event abstract type. This allows uniform handling of Any and Structured types.Anys are handled as the TAO_Notify_Any type and StructuredEvent as TAO_Notify_StructuredEvent * orbsvcs/orbsvcs/Makefile: updates dependencies. Added Files: * orbsvcs/orbsvcs/Notify/Notify_Proxy_T.{h, cpp}: Base class for all Proxys, pushed all Filter and QoS methods here. * orbsvcs/orbsvcs/Notify/Notify_SequenceProxyPushConsumer_i.{h,cpp}: * orbsvcs/orbsvcs/Notify/Notify_SequenceProxyPushSupplier_i.{h,cpp}: New proxy consumer and proxy supplier types that support pushing the EventBatch type (a sequence of Structured Event). Removed files: * ID_Pool_T.{h,cpp,i}: Moved to Notify_ID_Pool_T.* to be consistent with file naming. * Notify_Dispatcher.{h,cpp}: * NotifySubscribe_i.{h,cpp}: * NotifyPublish_i.{h,cpp}: * Notify_ProxySupplier_i.{h,cpp}: * Notify_ProxyConsumer_i.{h,cpp}: Obsoleted by design changes. Fri Mar 10 12:50:37 2000 Douglas C. Schmidt * orbsvcs/Naming_Service/NT_Naming_Service.cpp: Added the capability to extract the Naming Service options from the NT Registry. Thanks to Tim Sim for contributing this. Fri Mar 10 17:44:39 2000 Jeff Parsons * TAO_IDL/ast/ast_interface.cpp: When a forward declared interface is defined, the forward declaration must be looked up for redefinition. If this happened in a module that was reopened from one included from another IDL file, the lookup was failing. Thanks to Brian Wright for sending in the IDL file that uncovered this bug. Fri Mar 10 12:50:37 2000 Douglas C. Schmidt * utils/nslist/nslist.cpp (show_chunk): Make sure to handle the case where the "kind" field has a value. Also, removed some redundant code. Thanks to Paul Calabrese for reporting this. Fri Mar 10 11:33:38 2000 Balachandran Natarajan * tests/Smart_Proxies/On_Demand/Smart_Test_Factory.cpp: Fixed a typo that was preventing compilation. * tests/Smart_Proxies/On_Demand/run_test.pl: Made the run_test.pl to look in to the right directory for ACEutils. DISCLAIMER:The above fixes does not mean that the test actually works. I feel the test is broken. Thu Mar 09 22:55:52 2000 Nanbor Wang * tao/Servant_Base.cpp (_create_stub): We must not use the stub object until it is created. Thu Mar 09 18:25:00 2000 Angelo Corsaro * TAO/orbsvcs/ImplRepo_Service/tao_imr_i.h: * TAO/orbsvcs/orbsvcs/AV/AV_export.h: * TAO/orbsvcs/orbsvcs/AV/sfp.h: * TAO/orbsvcs/orbsvcs/CosEvent/ConsumerAdmin_i.h: * TAO/orbsvcs/orbsvcs/CosEvent/EventChannel_i.h: * TAO/orbsvcs/orbsvcs/CosEvent/ProxyPushConsumer_i.h: * TAO/orbsvcs/orbsvcs/CosEvent/ProxyPushSupplier_i.h: * TAO/orbsvcs/orbsvcs/CosEvent/SupplierAdmin_i.h: * TAO/orbsvcs/orbsvcs/AV/Transport.h: These files were using the #if !defined (WHATEVER) as multiple inclusion guard instead of #ifndef WHATEVER. Thanks to Paul Calabrese for reporting that. * TAO/orbsvcs/orbsvcs/AV/TCP.h: * TAO/orbsvcs/orbsvcs/Event/Debug_Macros.h: * TAO/orbsvcs/orbsvcs/Trader/Constraint_Tokens.h: While this file were missing multiple inclusion guard. Thanks to Paul Calabrese for reporting that. Thu Mar 09 16:22:10 2000 Irfan Pyarali * tao/Servant_Base.cpp (_create_stub): Awesome detective work by Paul Calabrese lead to a bug in this function. The was incorrectly assigned to be the ORB in the POA Current even when the servant in the POA Current did not match the servant calling this function. This solves bug 471. Thu Mar 9 08:13:04 2000 Carlos O'Ryan * orbsvcs/tests/Event/Basic/Gateway.cpp: Fixed compilation problems. I was using ACE_CHECK instead of ACE_TRY_CHECK, unfortunately my builds with exceptions enabled did not detect that. Wed Mar 8 20:24:03 2000 Carlos O'Ryan * tao/decode.cpp: * tao/encode.cpp: Files were removed by accident, adding them back into the repo. Wed Mar 8 17:22:32 2000 Ossama Othman * docs/pluggable_protocols/index.html: Fixed typographical errors. * tao/ORB.cpp (ORB_init): It doesn't make sense for argc to be zero and argv to be non-empty/zero, or for argc to be greater than zero and argv be zero/empty. Throw a CORBA::BAD_PARAM() exception if argc/argv combination is invalid. * tao/ORB_Core.cpp (init): Throw a CORBA::BAD_PARAM() exception if an unrecognized "-ORB" option is encountered. This behavior is in accordance with the CORBA 2.3.1 specification. Use ACE_NEW_THROW_EX(), instead of ACE_NEW_RETURN() in "-ORBLogFile" option processing code. Explicitly consume "-ORBid" options passed to this method since they are specifically handled in the CORBA::ORB_init() method. According to the CORBA specification, if the ORBid third argument is used then any "-ORBid" options must be ignored. However, the above fix that forces the ORB to throw an exception when encountering an unrecognized "-ORB" option, also forces us to explicitly recognize the "-ORBid" option in the TAO_ORB_Core::init() method since it may "slip" through when both the ORBid third argument to CORBA::ORB_init() and a "-ORBid" ORB option are provided. Wed Mar 8 12:03:21 2000 Carlos O'Ryan * tao/GIOP.cpp: The receiving code was checking errno when the recv() call returned 0, this is incorrect as errno is only set if recv() returns -1. This resulted in connections never getting closed if the errno was set to EWOULDBLOCK before recv() returned 0. Many thanks to Dave Meyer and Chris Cleeland for tracking down the problem. Some users had reported that when using thread-per-connection the ORB thread will loop forever, consuming a lot of CPU, when the client terminated. This may have also solved that problem. Wed Mar 8 08:31:25 2000 Carlos O'Ryan * orbsvcs/orbsvcs/Event/EC_ObserverStrategy.cpp: Fixed problems with gateway re-connections. After a consumer changed its subscription no more events are received from the remote supplier. Thanks to Harald Finster for reporting this bug. * orbsvcs/tests/Event/Basic/Makefile: * orbsvcs/tests/Event/Basic/run_test.pl: * orbsvcs/tests/Event/Basic/Basic.dsw: * orbsvcs/tests/Event/Basic/Gateway.cpp: * orbsvcs/tests/Event/Basic/Gateway.dsp: Add a new regression test to the event service. Wed Mar 8 08:59:47 2000 Jeff Parsons * tao/InterfaceC.cpp: Added a missing operation name length argument. Thanks to Thomas Lockhart for pointing this out. Wed Mar 8 01:33:21 2000 Christopher Kohlhoff * TAO/Makefile.bor: Added support for 3 different "levels" of build: minimal, typical and all. * TAO/orbsvcs/orbsvcs/Makefile.bor: Added new files. Tue Mar 07 15:42:41 2000 Nanbor Wang * docs/interceptors.html: Fixed some html tag problems. Thanks to Chanaka Liyanaarachchi for reporting this. Tue Mar 07 10:30:06 2000 bala * TAO version 1.0.15 released. Tue Mar 7 09:33:21 2000 Jeff Parsons * tao/deep_free.cpp: In TAO_Marshal_Union, the type of 'discrim_tc' was changed to a _var, but I neglected to change its form when used as an argument to discrim_tc.in (). Mon Mar 6 22:49:45 2000 Pradeep Gore * orbsvcs/orbsvcs/Notify/Notify_EventChannelFactory_i.cpp: removed ACE_CHECK_RETURN from the get_channel method to fix compile warning with kai3.3e Mon Mar 6 19:43:00 2000 Pradeep Gore * orbsvcs/orbsvcs/Notify/Notify_EventChannelFactory_i.cpp: fixed compile warning in create method. * orbsvcs/tests/CosEC_Basic/CosEC_Basic.cpp: fix for IRIX compile error: used ServantBase_var instead of auto_ptr Mon Mar 6 16:49:44 2000 Jeff Parsons * tao/deep_free.cpp: Plugged a memory leak in TAO_Marshal_Union. When the typecode of the union's discriminator is fetched, a duplicate is returned, but the return value was not disposed of after use. Thanks to Lothar Werzinger for sending in the IDL file and test code that revealed this bug. Sun Mar 5 18:36:34 2000 Darrell Brunsch * orbsvcs/orbsvcs/Notify/Notify_EventChannelFactory_i.h: * orbsvcs/orbsvcs/Notify/Notify_FilterFactory_i.h: * orbsvcs/orbsvcs/Notify/Notify_PushConsumer.h: * orbsvcs/orbsvcs/Notify/Notify_PushSupplier.h: * orbsvcs/orbsvcs/Notify/Notify_StructuredPushConsumer.h: * orbsvcs/orbsvcs/Notify/Notify_StructuredPushSupplier.h: Disabled the inheritance by dominance warnings in MSVC. * orbsvcs/orbsvcs/orbsvcs.dsp: * orbsvcs/orbsvcs/orbsvcs_static.dsp: Added the new notification files to the projects. Sun Mar 5 16:36:25 2000 Pradeep Gore * orbsvcs/orbsvcs/Notify/Notify_EventChannelFactory_i.cpp: dereference via .in in method MyFactory. * orbsvcs/orbsvcs/Notify/Notify_EventChannel_i.cpp: get_event_channel: translate any exception to ChannelNotFound. * orbsvcs/orbsvcs/Notify/Notify_ProxySupplier_T.cpp: corrected spelling mistake. * orbsvcs/orbsvcs/Notify/Notify_PushConsumer.cpp: * orbsvcs/orbsvcs/Notify/Notify_PushSupplier.cpp: added missing ACE_THROW_SPEC Sun Mar 5 15:34:36 2000 Balachandran Natarajan * tests/IORManipulation/IORTest.cpp (main): Added a work around for a compiler bug in IRIX CC. Sun Mar 5 12:45:50 2000 Jeff Parsons * tao/MessagingC.h: * tao/MessagingC.cpp: Removed Any operators for ExceptionHolder, which is a valuetype, not an interface. * POAC.h: Added #if !defined (TAO_HAS_MINIMUM_CORBA) guards to declaration of Any operators for ForwardRequest. The operator bodies are already guarded. Sat Mar 4 18:11:28 2000 Pradeep Gore * Modified the following files: * orbsvcs/Notify/Notify_Constraint_Interpreter.h: * orbsvcs/Notify/Notify_FilterAdmin_i.{h,cpp}: * orbsvcs/Notify/Notify_FilterFactory_i.h: * orbsvcs/Notify/Notify_Filter_i.{h,cpp}: * orbsvcs/Notify/Notify_QoSAdmin_i.h : minor changes to header file inclusions. * orbsvcs/Notify/Notify_ConsumerAdmin_i.{h,cpp}: * orbsvcs/Notify/Notify_SupplierAdmin_i.{h,cpp}: * orbsvcs/Notify/Notify_EventChannelFactory_i.{h,cpp}: * orbsvcs/Notify/Notify_EventChannel_i.{h,cpp}: Changed the design for looking up children objects from being ACE_Hash_Map_Manager based to the POA.Each Object factory in Notify creates a child POA to activate created objects in.This cleanly decouples object lookup functionality from the working of the Event Channel.The unique ID's generated for each object created is converted to Object Id's for activation and reference lookup. * orbsvcs/Notify/Notify_ProxyPushConsumer_i.{h,cpp}: * orbsvcs/Notify/Notify_ProxyPushSupplier_i.{h,cpp}: * orbsvcs/Notify/Notify_StructuredProxyPushConsumer_i.{h,cpp}: * orbsvcs/Notify/Notify_StructuredProxyPushSupplier_i.{h,cpp}: Added 'push' implementations. * orbsvcs/Notify/Notify_StructuredPushConsumer.{h,cpp}: * orbsvcs/Notify/Notify_StructuredPushSupplier.{h,cpp}: Removed and close methods from helper classes. * orbsvcs/orbsvcs/Makefile: Added new files to Notify, updated dependencies. * orbsvcs/Notify_Service/Notify_Service.{h,cpp}: Changed to use the TAO_Notify_EventChannelFactory::create method. * orbsvcs/examples/Notify/Filter.cpp: Changed to use the new TAO_Notify_StructuredPushConsumer methods. New files: * orbsvcs/Notify/Notify_Event_Manager.{h,cpp}: The class controls all aspects of event propogation from suppliers to consumers, provides methods to handle subscription and publication lists logic.It also contains the which is the central storage for subscription lists and is accessed to decide where events should go. * orbsvcs/Notify/Notify_ID_Pool_T.{h,cpp,i}: The template class generates Ids for all object factories in Notify.Id's can be returned to the pool for recyling. * orbsvcs/Notify/Notify_Listeners.h: Defines the and internal interfaces for Notify. * orbsvcs/Notify/Notify_ProxyConsumer_T.{h,cpp}: Template Base classes for the Proxy Consumers. * orbsvcs/Notify/Notify_ProxySupplier_T.{h,cpp}: Template Base classes for the Proxy Suppliers. * orbsvcs/Notify/Notify_PushConsumer.{h,cpp}: Helper servant implementation for PushConsumers. * orbsvcs/Notify/Notify_PushSupplier.cpp.{h,cpp}: Helper servant implementation for PushSuppliers. * orbsvcs/Notify/Notify_Resource_Manager.{h,cpp}: All object creations are done here. * orbsvcs/Notify/Notify_Types.{h,cpp}: Defines the and Subscription and Publication list types. * orbsvcs/examples/Notify/Subscribe/Subscribe{.h,.cpp}: * orbsvcs/examples/Notify/Subscribe/main.cpp: * orbsvcs/examples/Notify/Subscribe/Makefile: New example to show how to use subscription (under construction). Sat Mar 4 16:09:42 2000 Jeff Parsons * tao/MessagingC.h: * tao/MessagingC.i: * tao/MessagingC.cpp: * tao/POAC.h: * tao/POAC.i: * tao/POAC.cpp: * tao/PolicyC.h: * tao/PolicyC.i: * tao/PolicyC.cpp: Replaced all Any insertion/extraction operators with the new versions that use compiled marshaling. Also added many missing Any and CDR stream insertion/extraction operators. This completes the job for all the generated files in TAO/tao. Fri Mar 3 14:41:42 2000 Balachandran Natarajan * tao/Sequence.cpp (allocbuf): * tao/Typecode.cpp: Removed the use of "naked new" operators. Fri Mar 3 13:41:12 2000 Balachandran Natarajan * tao/IIOP_Profile.cpp: * tao/SHMIOP_Profile.cpp: * tao/UIOP_Profile.cpp: Added error checking. The error checking was needed for the ACE_Inet_Addr::set () method that was getting called. This is for bug #474 reported by Chris Cleeland . Fri Mar 3 11:15:06 2000 Ossama Othman * tao/SHMIOP_Profile.cpp (decode): Corrected "IIOP" to be "SHMIOP" in debugging output. Minor cosmetic changes. Fri Mar 3 11:01:32 2000 Krishnakumar Elakkara Pathayapura * orbsvcs/orbsvcs/Log/Log_i.cpp (my_factory): fixed a bug. The constructor was not making a duplicate when assigning to a _var. Thanks to Rob Ruff and Sandro Doro for reporting it. Fri Mar 3 01:06:49 2000 Nagarajan Surendran * docs/releasenotes/index.html: Fixed a missing link ~naga/av.html to ~schmidt/av.html. Thanks to Keith Nicewarner for reporting this. Thu Mar 2 22:29:17 2000 Jeff Parsons * tao/TAO.dsp: Added TimeBaseC.h to project. Thu Mar 2 21:03:09 2000 Jeff Parsons * tao/CONV_FRAMEC.h: * tao/CONV_FRAMEC.cpp: * tao/CurrentC.h: * tao/CurrentC.cpp: * tao/DomainC.h: * tao/DomainC.cpp: * tao/GIOPC.h: * tao/GIOPC.cpp: * tao/IOPC.h: * tao/IOPC.cpp: * tao/IORC.h: * tao/IORC.cpp: * tao.ImplRepoC.h: * tao.ImplRepoC.cpp: * tao/InterceptorC.h: * tao/InterceptorC.i: * tao/InterceptorC.cpp: * tao/InterfaceC.h: * tao/InterfaceC.cpp: * tao/PolicyC.h: * tao/PolicyC.cpp: * tao/PollableC.h: * tao/Pollable.cpp: * tao/TAOC.h: * tao/TAOC.cpp: * tao/TimeBaseC.h: * tao/TimeBaseC.cpp: Replaced the Any operators with new versions using compiled marshaling, and added the new CORBA 2.3 overload for the extraction operator having an rhs of pointer to const. Also put back some CDR stream operators into Interceptor needed by the new Any operators. Thu Mar 2 11:58:56 2000 Jeff Parsons * TAO_IDL/be/be_visitor_interface/any_op_cs.cpp: In the extraction operator, removed an extra assignment of the rhs to 0. Thu Mar 2 09:24:16 2000 Carlos O'Ryan * tao/Object.h: * tao/Object.i: Add a static _unchecked_narrow() method to CORBA::Object, it is useful when writing generic templates. Thanks to Andreas Geisler for pointing this out. Thu Mar 2 09:09:58 2000 Carlos O'Ryan * tao/Exception.h: * tao/Exception.cpp: The CORBA::UserException is abstract, the _raise() method cannot be defined for it. * tao/POAC.i: The ForwardRequest exception is not present with minimum CORBA, yet i did not protect the CDR insertion and extraction operators for it with TAO_HAS_MINIMUM_CORBA == 0 * TAO_IDL/be/be_visitor_exception/cdr_op_ci.cpp: For exceptions without any fields the operator>> declared on the header file and the one defined in the .i file were not matching. Wed Mar 1 21:36:38 2000 Darrell Brunsch * tao/POAC.h: * tao/POAC.i: Carlos accidentally spilled a little bit of his life-supplying coffee this morning and it finally caught up with him. He missed the &'s in the operator>> for AdapterInactive. Wed Mar 1 18:01:37 2000 Carlos O'Ryan * tao/Exception.h: * tao/Exception.cpp: New virtual methods _tao_encode() and _tao_decode() added. The ORB uses those methods to marshal and demarshal exceptions polymorphically. Notice that the methods use compiled marshaling, so this continues the quest to decouple the ORB from interpreted marshaling. * TAO_IDL/be/be_visitor_exception/cdr_op_ci.cpp: The CDR extraction operator for Exceptions should not extract the repository ID, this is done by the caller, who first extract the id, then creates the right Exception, and only then calls the extraction operator (indirectly, through the _tao_decode() method). * TAO_IDL/be/be_visitor_exception/exception_ch.cpp: * TAO_IDL/be/be_visitor_exception/exception_cs.cpp: Generate the _tao_encode() and _tao_decode() methods for each user exception. * tao/GIOP.cpp: Use the _tao_encode() method to marshal exceptions and send them across the wire. * tao/Any.cpp: Insertion operator for exceptions into anys uses the _tao_encode() method now. * tao/BoundsC.h: * tao/BoundsC.i: * tao/BoundsC.cpp: * tao/DynAnyC.h: * tao/DynAnyC.cpp: * tao/IORC.h: * tao/IORC.i: * tao/IORC.cpp: * tao/ImplRepoC.h: * tao/ImplRepoC.i: * tao/ImplRepoC.cpp: * tao/InconsistentTypeCodeC.h: * tao/InconsistentTypeCodeC.cpp: * tao/Invocation.cpp: * tao/ORB.h: * tao/ORB.cpp: * tao/POAC.h: * tao/POAC.i: * tao/POAC.cpp: * tao/PolicyC.h: * tao/PolicyC.i: * tao/PolicyC.cpp: * tao/PollableC.h: * tao/PollableC.i: * tao/PollableC.cpp: * tao/Typecode.h: * tao/Typecode.cpp: * tao/WrongTransactionC.h: * tao/WrongTransactionC.cpp: Add the _tao_encode and _tao_decode methods. * tao/decode.cpp: * tao/encode.cpp: Removed support for marshaling and demarshaling of exceptions. * tao/Stub.cpp: Cosmetic fixes. Wed Mar 1 17:47:19 2000 Ossama Othman * tao/ORB.cpp: Cosmetic update. * tao/POA.cpp (create_reference_i, create_reference_with_id_i): Corrected "optimal conversion" warnings from gcc 2.95.2 by using a temporary pointer variable in the ACE_NEW_THROW_EX expression, and then assigning that variable to the "_var" variable. Wed Mar 1 17:27:45 2000 Ossama Othman * tao/IIOP_Acceptor.h (hostname): Added new helper method to the TAO_IIOP_Acceptor class. * tao/IIOP_Acceptor.cpp (open_default): Make sure number of probed network interfaces returned from ACE::get_ip_interfaces() is greater than zero. If no network interfaces were found then assume one exists and use the default interface. The use of the default interface in this situation basically reverts back to the pre-multi-homed support behavior, so it should always work on properly configured systems. (open, open_default): Use ACE_INET_Addr::set() to initialize the TAO_IIOP_Acceptor member addr(s), instead of performing memberwise assignment. Note that the open() method was missing a copy/assignment altogether. This buglet was introduced when I added support for multi-homed hosts. The only affect this bug should have had is to break the check for collocation in TAO_IIOP_Acceptor::is_collocated(). (open_i): Cosmetic update. (hostname): Added this helper method. It factors out the code common to both the open() and the open_default() methods that cache the hostname(s) extracted from the ACE_INET_Addr(s). * tao/ORB_Core.cpp (TAO_ORB_Core): * tao/Stub.h: Cosmetic updates. Wed Mar 1 17:30:14 2000 Jeff Parsons * TAO_IDL/be/be_visitor_array/any_op_cs.cpp: * TAO_IDL/be/be_visitor_enum/any_op_cs.cpp: * TAO_IDL/be/be_visitor_exception/any_op_cs.cpp: * TAO_IDL/be/be_visitor_interface/any_op_cs.cpp: * TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp: * TAO_IDL/be/be_visitor_structure/any_op_cs.cpp: * TAO_IDL/be/be_visitor_union/any_op_cs.cpp: Removed all calls to decode(), and replaced calls to Any::replace() (which calls encode()) with calls to Any::_tao_replace() (which does not). This is the first step in ridding TAO of interpreted (de)marshaling. Also added some memory cleanup if a CDR stream operation is not successful for some reason. Wed Mar 1 16:38:14 2000 Jeff Parsons * TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ch.cpp: * TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ci.cpp: * TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_cs.cpp: * TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ch.cpp: * TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ci.cpp: * TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_cs.cpp: * TAO_IDL/be/be_visitor_sequence/gen_bounded_sequence_ch.cpp: * TAO_IDL/be/be_visitor_sequence/gen_bounded_sequence_ci.cpp: * TAO_IDL/be/be_visitor_sequence/gen_bounded_sequence_cs.cpp: * TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_ch.cpp: * TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_ci.cpp: * TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_cs.cpp: Code generation for sequences of a typedef now use the typedef's name instead of the unaliased type name. The former behavior was causing a problem when the typedef in question is #included from another IDL file. Thanks to David O'Farrell for sending in the example IDL file that exposed this problem. Wed Mar 1 12:47:41 2000 Balachandran Natarajan * tao/Policy_Manager.cpp (get_policy_overrides): * tao/GIOP_Server_Request.cpp: * tao/POA.cpp: * tao/decode.cpp: * tao/Object_Adapter.cpp: * tao/ORB.cpp: * tao/IORC.cpp:Removed the naked "new" operators. This is for bug #259. The bug refers only to ORB_Core, but other things were also added to make things cleaner. BTW, it was also observed that there were no naked new operators in ORB_Core.cpp. Wed Mar 1 08:29:42 2000 Ossama Othman * tao/default_resource.cpp: Added missing template instantation for ACE_Auto_Basic_Ptr. Wed Mar 1 09:59:46 2000 Jeff Parsons * TAO_IDL/be/be_visitor_operation/operation_ss.cpp: Removed redundant generation of an ACE_CHECK statement, found as a byproduct of looking for another bug. Tue Feb 29 16:44:47 2000 Carlos O'Ryan * tests/CDR/Makefile: * tests/CDR/README: * tests/CDR/alignment.cpp: * tests/CDR/octet_sequence.cpp: * tests/CDR/run_test.pl: New test to verify that bug #160 won't show up again. * examples/Simulator/DOVEMIB/AnyAnalyser.cpp: * orbsvcs/orbsvcs/AV/sfp.cpp: * tao/CDR_Interpreter.cpp: * tao/GIOP_Server_Request.cpp: * tao/Typecode.cpp: * tao/decode.cpp: * tao/deep_free.cpp: * tao/encode.cpp: Use ACE_ptr_align_binary and ACE_align_binary, i changed the name of the macros. Tue Feb 29 10:37:53 2000 Michael Kircher * orbsvcs/orbsvcs/AV/AVStreams_i.cpp, orbsvcs/orbsvcs/AV/Flows_T.cpp: Fixed locations where iterators where used without 'advance ()', but just 'next ()' this would have resulted to deadlocks. Mon Feb 28 17:37:53 2000 Darrell Brunsch * TAO_IDL/driver/drv_args.cpp: Wasn't checking for the correct error value for get_temp_dir (), and this revealed a inconsistency in how it worked on Unix and Win32. Mon Feb 28 09:20:27 2000 Darrell Brunsch * examples/POA/DSI/Database_i.cpp: Removed the use of ACE_DEFAULT_BACKING_STORE, and now it should default correctly. This is related to the change to the temporary directory location changes in ACE. * TAO_IDL/driver/drv_args.cpp: Now uses the ACE::get_temp_dir () method. Mon Feb 28 10:35:10 2000 Ossama Othman * Makefile: Updated dependencies. Mon Feb 28 09:56:34 2000 Ossama Othman * tao/Resource_Factory.h (TAO_Protocol_Item): * tao/Resource_Factory.cpp (factory): Added flag that indicates whether or not the TAO_Protocol_Item retains ownership of the Protocol_Factory it contains. Thanks to Christopher Kohlhoff for suggesting this change. * tao/default_resource.cpp (init_protocol_factories): Fixed potential memory leaks related to protocol factory pointer ownership. Ownership of a factory pointer is transferred to the TAO_Protocol_Item only if a Protocol_Factory is allocated by the default resource factory, instead of obtaining it from the Service Configurator. Thanks to Christopher Kohlhoff for reporting this bug, and suggesting a fix. Fixed potential problem where a TAO_Protocol_Item was used to obtain debugging output after it was deallocated. Improved exception safety by adding and using an auto_ptr instance. Wrapped some debugging text with the ASYS_TEXT() macro. These were missed in a previous iteration. * performance-tests/Cubit/TAO/IDL_Cubit/run_test.pl: Added an IDL_Cubit run that uses a SHMIOP endpoint. Sat Feb 26 17:29:50 2000 Darrell Brunsch * orbsvcs/orbsvcs/orbsvcs.dsp: Added dependencies for tao_idl to a couple of idl files that were missing it. Fri Feb 25 19:59:33 2000 Vishal Kachroo * tao/GIOP.cpp (process_server_request): Removed a memory leak. Thanks to Klemen Zagar for reporting this. Fri Feb 25 18:39:17 2000 Jeff Parsons * tao/Any.h: * tao/Any.cpp: Added insertion/extraction operator for long double. These work right out of the box on platforms like Solaris and Digitial Unix where the size of the native long double is 16 bytes. For other platforms, we define CORBA::LongDouble to be a struct containing an array 'ld' of 16 chars. In that case, the workaround would look like: CORBA::LongDouble dd; sprintf (dd.ld, "%f", 3.14159); CORBA::Any any; any <<= dd; CORBA::LongDouble dd_out; any >>= dd_out; cout << atof (dd_out.ld) << endl; Fri Feb 25 18:25:28 2000 Jeff Parsons * tests/IDL_Test/reopened_modules.idl: * tests/IDL_Test/including.idl: Fix to accomodate platforms without namespaces. Fri Feb 25 15:08:18 2000 Carlos O'Ryan * docs/releasenotes/index.html: Documented the new version of the COS Event Service * orbsvcs/CosEvent_Service/Makefile: * orbsvcs/CosEvent_Service/README: * orbsvcs/CosEvent_Service/CosEvent_Service.dsw: * orbsvcs/CosEvent_Service/CosEvent_Service_Native.cpp: * orbsvcs/CosEvent_Service/CosEvent_Service_Native.dsp: Provide a program to run the new implementation of the COS Event Service. * orbsvcs/CosEvent_Service/svc.conf: Removed, no longer needed. * orbsvcs/examples/CosEC/Makefile: * orbsvcs/examples/CosEC/Simple/Makefile: * orbsvcs/examples/CosEC/Simple/README: * orbsvcs/examples/CosEC/Simple/run_test.pl: * orbsvcs/examples/CosEC/Simple/Service.cpp: * orbsvcs/examples/CosEC/Simple/Consumer.h: * orbsvcs/examples/CosEC/Simple/Consumer.cpp: * orbsvcs/examples/CosEC/Simple/Supplier.h: * orbsvcs/examples/CosEC/Simple/Supplier.cpp: New example, to show how easy it is to use the COS Event Service. Fri Feb 25 14:03:57 2000 Carlos O'Ryan * orbsvcs/orbsvcs/Event/EC_ProxyConsumer.cpp: * orbsvcs/orbsvcs/Event/EC_ProxySupplier.cpp: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPullConsumer.cpp: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPullSupplier.cpp: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushConsumer.cpp: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushSupplier.cpp: Fixed warnings in deactivate() call. * orbsvcs/orbsvcs/CosEvent/CEC_MT_Dispatching.cpp: * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_Pulling_Strategy.cpp: Removed debugging messages. Fri Feb 25 10:46:52 2000 Ossama Othman * docs/releasenotes/index.html: Updated release notes for TAO's pluggable protocol framework. Fri Feb 25 10:43:48 2000 Carlos O'Ryan * orbsvcs/orbsvcs/CosEvent/CEC_ConsumerAdmin.cpp: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPullConsumer.cpp: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPullSupplier.cpp: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushConsumer.cpp: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushSupplier.cpp: * orbsvcs/orbsvcs/CosEvent/CEC_SupplierAdmin.cpp: * orbsvcs/orbsvcs/Event/EC_Concrete_Proxy_Set.cpp: * orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.cpp: * orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.h: * orbsvcs/orbsvcs/Event/EC_Event_Channel.cpp: * orbsvcs/orbsvcs/Event/EC_ProxyConsumer.cpp: * orbsvcs/orbsvcs/Event/EC_ProxySupplier.cpp: * orbsvcs/orbsvcs/Event/EC_SupplierAdmin.cpp: Assume that the client invokes obtain_push_consumer() (or any other obtain_xxx_yyy() call), but never invokes the corresponding connect_push_consumer() call. Before this change the only way that object will get destroyed is by an eventual shutdown, as only the POA is holding a reference to it. With the new implementation the EC keeps a reference to it in the ConsumerAdmin collection, once there the ConsumerControl strategy can remove the object if it is deemed to have been there for too long. Notice that the default control strategies don't do this, but it is relatively easy to add that feature. This change also simplified the shutdown() and disconnect() calls for the proxies, and made the code "more exception safe". This fixes [BUGID:437], and it reduces the probability of hitting [BUGID:438], even though that last one is very unlikely to happen in the first place. Notice how many files were affected, this is a strong argument for the Event Service Framework, that i'm cooking on the back burner. Fri Feb 25 10:49:30 2000 Douglas C. Schmidt * orbsvcs/orbsvcs/CosConcurrencyControl.idl, orbsvcs/orbsvcs/RtecDefaultEventData.idl, orbsvcs/orbsvcs/RtecEventComm.idl: Fixed all three of these files so that they use the more portable #ifndef FOO rather than #if !defined (FOO) syntax. Thanks to W. Craig Trader for reporting this. Fri Feb 25 08:59:59 2000 Ossama Othman * tao/IIOP_Acceptor.cpp (create_mprofile, open_default): Fixed support for hosts with multiple network interfaces. A profile will be created for each endpoint created on each network interface. The loopback interface will be excluded, unless it is the only interface. (endpoint_count, open, open_i): Additional minor changes to accomodate the new multi-homed host support. * tao/IIOP_Acceptor.h (TAO_IIOP_Acceptor): Changes in member variables necessary to support multi-homed hosts (e.g. change from variable to an array, etc). * tao/IIOP_Acceptor.i (address): Return the first addr in the array of ACE_INET_Addrs. This is a temporary hack. Only the Implementation Repository uses this method. The Implementation Repository will have to start supporting IORs with multiple profiles. For now, we just return the first addr. * tao/Makefile.am: Updated dependencies. Fri Feb 25 10:45:48 2000 Jeff Parsons * TAO_IDL/include/idl_global.h: * TAO_IDL/util/utl_global.h: * TAO_IDL/driver.drv_args.cpp: * TAO_IDL/be/be_codegen.cpp: * TAO_IDL/be/be_visitor_exception/cdr_op_ch.cpp: * TAO_IDL/be/be_visitor_exception/cdr_op_ci.cpp: Added command line option -So to suppress the generation of ostream operators for exceptions. Suggested by Greg Holtmeyer . Fri Feb 25 09:44:28 2000 Jeff Parsons * performance-tests/Latency/dii_client.cpp: Guarded all pertinent code with #if !defined (TAO_HAS_MINIMUM_CORBA). If minimum CORBA is defined, the client code should now just get and narrow a reference to the server. skip instantiating the client, and shutdown the server if that option is selected. Fri Feb 25 09:34:19 2000 Jeff Parsons * TAO_IDL/be/be_visitor_structure/structure_ch.cpp: For struct foo, removed typedef of foo_ptr and foo::_ptr_type. These are not part of the spec. Thanks to Chris Cleeland for pointing this out. Thu Feb 24 18:33:43 2000 Jeff Parsons * tests/Param_Test/param_test.idl: * tests/Param_Test/client.dsp: * tests/Param_Test/run_test.pl: * tests/Param_Test/tests.h: * tests/Param_Test/driver.cpp: * tests/Param_Test/param_test_i.h: * tests/Param_Test/param_test_i.cpp: * tests/Param_Test/multdim_array.h: * tests/Param_Test/multdim_array.cpp: Activated the multidimensional array test, which had been commented out for some time. Thu Feb 24 18:21:42 2000 Jeff Parsons * TAO_IDL/be/be_visitor_argument/upcall_ss.cpp: If a multidimensional array 'foo' is an IN parameter to an operation, some compilers have trouble with the implicit cast to const. We now help them out by casting (multidimensional arrays only) the IN argument to const foo_slice * before making the upcall. Thu Feb 24 16:25:04 2000 Yamuna Krishnamurthy * orbsvcs/tests/AVStreams/mpeg/source/server/Machine_Properties.cpp: * orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/vs.cpp: Fixed compile errors on RedHat Linux platform. Thanks to Sandeep Adwankar for pointing this out. Thu Feb 24 10:49:32 2000 Ossama Othman * tao/ORB_Core.cpp (init): Fixed the reason why the seg fault when printing a warning about an unknown "-ORB" option was occuring in the first place. "current_arg" was not being set to the current argument. Thu Feb 24 09:29:19 2000 Ossama Othman * tao/ORB_Core.cpp (init): Fixed seg fault that was occurring due to attempt to print a NULL string (zero pointer). Print "" if the pointer to the current argument is zero. The seg fault occurred when providing a command such as the following: ./server -ORBDebugLevel 6 -ORBDottedDecimalAddress The "-ORBDottedDecimalAddress" option is missing its argument. * tao/POA.cpp (imr_notify_startup): Corrected spelling of "Notifing." Thu Feb 24 01:32:00 2000 Nanbor Wang * tao/Object.cpp (_non_existent): The collocated servant also throws exception. Moved it into the try block. Thanks to Brian Wright for reporting this. Wed Feb 23 18:35:41 2000 Carlos O'Ryan * orbsvcs/orbsvcs/Event/EC_ProxySupplier.cpp: Invoke the consumer control strategy as soon as an exception is raised while pushing to a consumer. This fixes [BUGID:434] * orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.cpp: * orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.cpp: The comments explaining what we do when we detect a system exception while pushing an event where very confusing, i think it is better now. * orbsvcs/orbsvcs/CosEvent/CEC_ConsumerControl.h: * orbsvcs/orbsvcs/CosEvent/CEC_ConsumerControl.cpp: * orbsvcs/orbsvcs/CosEvent/CEC_SupplierControl.h: * orbsvcs/orbsvcs/CosEvent/CEC_SupplierControl.cpp: * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_ConsumerControl.h: * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_ConsumerControl.i: * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_ConsumerControl.cpp: * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_SupplierControl.h: * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_SupplierControl.i: * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_SupplierControl.cpp: Include support for detecting misbehaving pull suppliers and pull consumers. This fixes [BUGID:433] * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPullConsumer.cpp: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushSupplier.cpp: * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_Pulling_Strategy.cpp: Invoke the consumer or supplier control strategies as soon as an exception is raised while pushing an event to a push consumer or while pulling an event from a pull supplier. * orbsvcs/orbsvcs/Event/EC_Event_Channel.h: * orbsvcs/orbsvcs/Event/EC_Event_Channel.i: Provide access to the ConsumerControl and SupplierControl interfaces. * orbsvcs/tests/CosEvent/Basic/run_test.pl: There Pull_Push_Test had no header explaining its output. * orbsvcs/orbsvcs/CosEvent/CEC_Default_Factory.cpp: * orbsvcs/orbsvcs/Event/EC_Default_Factory.cpp: * orbsvcs/examples/RtEC/Schedule/Service.cpp: Workaround apparent bugs in the GHS compiler. It needs some extra #includes to instantiate the templates. Thanks to Bill Tovrea for reporting this problem and testing potential fixes. Wed Feb 23 20:36:30 2000 Douglas C. Schmidt * tests/README: Updated this file to include brief descriptions of all tests in the subdirectories. Thanks to Rick Hess for reporting this. Wed Feb 23 14:42:16 2000 Carlos O'Ryan * tests/IDL_Test/Makefile: Added dependency on the IDL compiler so the reopeneded_modules test is actually recompiled. * examples/Persistent_Grid/Grid_i.cpp: Fixed out of order in initialization list. Wed Feb 23 12:31:18 2000 Balachandran Natarajan * examples/Persistent_Grid/Grid_i.cpp: * examples/Persistent_Grid/Simple_util.cpp: Fixed a warning on Linux egcs. Tue Feb 22 18:13:02 2000 Jeff Parsons * TAO_IDL/util/utl_scope.cpp: In comparing names for name clashes, we now use the local name for local declarations, and the top component of the scoped name for referenced types, as specified in CORBA 2.3.1. Thanks to Klaus Hofmann for sending in the IDL file that pointed this out. Tue Feb 22 13:57:32 2000 Irfan Pyarali * TAO/tao/Invocation.cpp (start and invoke): Removed extra updates that were being called on the countdown timer. * TAO/tao/GIOP.cpp (send_message): Optimized away a call to TAO_OutputCDR::length(). * TAO/tao/Wait_Strategy.cpp (sending_request): The assignment of , , and was protected by the leader/followers lock. In the case of oneways, these fields are not used, so this seems excessive. In the case of twoways, this stuff is done before the request is actually sent, therefore, there isn't any chance of the leader resetting these fields simultaneously. Therefore, the lock has been removed. * TAO/tao/IIOP_Connector.cpp (connect): * TAO/tao/UIOP_Connector.cpp (connect): * TAO/tao/SHMIOP_Connector.cpp (connect): Optimize the creation of the synch options. Only create it is there is a timeout specified by the user. Tue Feb 22 14:51:32 2000 Jeff Parsons * TAO_IDL/be/be_generator.cpp: Changes to create_module() to handle a module which is reopened by appearing once in each of a chain of #inclusions. Thanks to Lothar Werzinger for the example IDL file that uncovered this bug. * tests/IDL_Test/included.idl: * tests/IDL_Test/including.idl: * tests/IDL_Test/reopened_modules.idl: Examples added to test the use case above. Tue Feb 22 13:28:19 2000 Nagarajan Surendran * orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Globals.cpp: Fixed compile errors on Redhat Linux. Thanks to Alex Luk for reporting this. Tue Feb 22 10:33:24 2000 Jeff Parsons * TAO_IDL/be/be_codegen.cpp: Removed inclusion of server template header file in server header file, if tie classes are not generated. Thanks to Lothar Werzinger for reporting this bug. Mon Feb 21 20:43:31 2000 Jeff Parsons * tao/Asynch_Invocation.h: * tao/Asynch_Invocation.i: * tao/Asynch_Invocation.cpp: * tao/GIOP.h: * tao/GIOP.cpp: * tao.Invocation.h: * tao/Invocation.i: * tao/Invocation.cpp: * tao/Object.cpp: * tao/Stub.cpp: * tao/DomainC.cpp: * tao/ImplRepoC.cpp: * tao/InterfaceC.cpp: * tao/MessagingC.cpp: * tao/POAC.cpp: * tao/PolicyC.cpp: * tao/PollableC.cpp: * TAO_IDL/be/be_visitor_operation/ami_cs.cpp: * TAO_IDL/be/be_visitor_operation/operation.cpp: Optimization suggested by Irfan. Instead of marshaling the operation name into the request header by using the overloaded << operator for strings (which contains a call to strlen), we use the version of write_string that takes a length argument. The length then has to be precomputed. The signatures of the TAO_GIOP_*_Invocation constructors has been modified to carry this value, as has the write_request_header* functions of TAO_GIOP. For regular oneway, twoway, and AMI requests, this value is calculated by the IDL compiler and plugged in to the constructor call in the stub. For interpreted stubs and regular DII requests, the Stub object calculates the length. For deferred synchronous DII request, the length is calculated in the invocation constructor. Mon Feb 21 16:19:59 2000 Carlos O'Ryan * tao/Any.cpp: * tao/decode.cpp: Do not use ACE_Message_Block::duplicate() or clone() to copy the underlying CDR stream. The first one is not thread safe and the second one does not preserve alignment. Instead we use the ACE_CDR::consolidate() function that performs a deep copy (thus thread safe) and preserves alignment. This fixes [BUGID:430] * examples/Makefile: Add the Persistent_Grid example to the Makefile. * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPullSupplier.cpp: The try_pull() method was always setting the flag to 0, even when there were events available. * orbsvcs/tests/CosEvent/Basic/Pull_Push_Event.cpp: Fine-tune the execution time. * orbsvcs/tests/CosEvent/Basic/run_test.pl: Enable the Pull-Push test because the bugs in TAO that kept it from working have been fixed. * performance-tests/Cubit/TAO/DII_Cubit/run_test.pl: Fixed the invocation to the IDL server, the options where wrong. * tests/param_test/ub_any_seq.cpp: Print debugging messages only if TAO_debug_level is defined. * orbsvcs/orbsvcs/Event/EC_Dispatching.h: * orbsvcs/orbsvcs/Event/EC_Gateway_UDP.h: * orbsvcs/orbsvcs/Event/EC_ProxySupplier.i: * orbsvcs/orbsvcs/Event/EC_ProxySupplier.cpp: * orbsvcs/orbsvcs/Event/EC_SupplierAdmin.h: Several cosmetic fixes and changes to the comments. Mon Feb 21 14:35:39 2000 Christopher Kohlhoff * tao/Makefile.bor, TAO/orbsvcs/orbsvcs/Makefile.bor: Added new files. * tests/MProfile/test_i.h: Removed extra semicolon. Mon Feb 21 16:09:28 2000 Douglas C. Schmidt * docs/DIFFERENCES: Clarified that this file doesn't reflect what's in TAO any more. Thanks to Alex Brown for pointing this out. Mon Feb 21 15:54:31 2000 Jeff Parsons * tests/IDL_Test/union.idl: Added an IDL code simplified from an example sent in by Jonathan Reis Mon Feb 21 10:59:00 2000 Jeff Parsons * TAO_IDL/be/be_generator.cpp: * TAO_IDL/include.utl_scope.h: * TAO_IDL/util/utl_scope.cpp: In create_module(), the check for a reopened module now includes a check for whether a previous module found with the scope iterator is from an included file or not. Previously, the node from the included file would be returned, and therefore no code would be generated for it. Also added code to add the included module's members to the reopened module, and removed an unused member from class UTL_Scope. Thanks to Lothar Werzinger for reporting this bug. Also, a small change to lookup_by_name_local in utl_scope.cpp fixed a bug reported by Jonathan Reis . This closes out bugzilla bug #449. Sun Feb 20 23:43:22 2000 Darrell Brunsch * TAO/orbsvcs/orbsvcs/orbsvcs_static.dsp: Synced with orbsvcs.dsp. Thanks to Mogens Hansen for noticing this. Sat Feb 19 20:24:29 2000 Nanbor Wang * orbsvcs/orbsvcs/CosEvent/CEC_Default_Factory.cpp (parse_collection_arg): Initialized to 0 to avoid MSVC warning. Sat Feb 19 18:47:22 2000 Carlos O'Ryan * tao/decode.cpp: When decoding Anys from a CDR stream we always use "append", to copy the contents of the original CDR stream into a new buffer. This new buffer is created with the natural alignment on the local machine, but we were storing the original stream byte order in the Any. Sat Feb 19 15:32:58 2000 Carlos O'Ryan * tao/Any.cpp: Reverted accidental commit. Sat Feb 19 17:07:24 2000 Krishnakumar Elakkara Pathayapura * docs/releasenotes/index.html (CosEC_Multiple): updated release notes Sat Feb 19 14:23:38 2000 Carlos O'Ryan * tao/Any.h: * tao/Any.i: * tao/Any.cpp: The Any structure keeps a byte_order field to determine what is the byte order in its internal CDR stream. This fixes [BUGID:431] * tao/CDR.h: * tao/CDR.cpp: Move the CDR extraction and insertion operators for Any into the Any.cpp file. Analogous changes for the TypeCode operators. * TAO_IDL/be/be_visitor_array/any_op_cs.cpp: * TAO_IDL/be/be_visitor_enum/any_op_cs.cpp: * TAO_IDL/be/be_visitor_exception/any_op_cs.cpp: * TAO_IDL/be/be_visitor_interface/any_op_cs.cpp: * TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp: * TAO_IDL/be/be_visitor_structure/any_op_cs.cpp: * TAO_IDL/be/be_visitor_union/any_op_cs.cpp: Generate code that uses the new byte_order field in Anys * tao/Typecode.h: * tao/Typecode.cpp: Moved the CDR extraction and insertion operators for TypeCode into the Typecode.cpp file. * tao/BoundsC.cpp: * tao/CONV_FRAMEC.cpp: * tao/CurrentC.cpp: * tao/DomainC.cpp: * tao/DynArray_i.cpp: * tao/DynEnum_i.cpp: * tao/DynSequence_i.cpp: * tao/DynStruct_i.cpp: * tao/DynUnion_i.cpp: * tao/GIOPC.cpp: * tao/GIOP_Server_Request.cpp: * tao/IOPC.cpp: * tao/IORC.cpp: * tao/ImplRepoC.cpp: * tao/InterceptorC.cpp: * tao/InterfaceC.cpp: * tao/Invocation.cpp: * tao/MessagingC.cpp: * tao/NVList.cpp: * tao/ObjectIDList.cpp: * tao/POAC.cpp: * tao/PolicyC.cpp: * tao/PollableC.cpp: * tao/Services.cpp: * tao/TAOC.cpp: * tao/TimeBaseC.cpp: * tao/append.cpp: * tao/decode.cpp: * tao/deep_free.cpp: * tao/encode.cpp: * tao/skip.cpp: Use the new byte_order field in Any. * tests/IDL_Test/Makefile: Updated dependencies. * tests/Param_Test/complex_any.cpp: The test was not checking the return value for some >>= operators. Sat Feb 19 15:34:49 2000 David L. Levine * TAO version 1.0.14 released. Fri Feb 18 19:21:25 2000 Jeff Parsons * docs/releasenotes/index.html: Removed IDL compiler item about relaxing the rule in IDL of defining forward declared interfaces in the same file (until it gets implemented) and added one about the new command line option -Sc to suppress generation of tie classes. Fri Feb 18 19:05:11 2000 Jeff Parsons * TAO_IDL/include/idl_global.h: * TAO_IDL/util/utl_global.cpp: * TAO_IDL/driver/drv_args.cpp: * TAO_IDL/be/be_visitor_root/root.cpp: * TAO_IDL/be/be_visitor_root/root_sh.cpp: * TAO_IDL/be/be_visitor_root/root_si.cpp: * TAO_IDL/be/be_visitor_root/root_ss.cpp: * TAO_IDL/be/be_visitor_interface/interface_sh.cpp: * TAO_IDL/be/be_visitor_interface/interface_si.cpp: Added command line option -Sc to suppress generation of tie classes and *S_T.* files. A question about this was sent in by Alex Hornby , which prompted the implementation. This closes out bugzilla bug #443. Fri Feb 18 13:53:43 2000 Carlos O'Ryan * performance-tests/RTCorba/Multiple_Endpoints/Orb_Per_Priority/server.cpp: Make argv buffers bigger, so they can handle more options. Fri Feb 18 12:53:13 2000 Nagarajan Surendran * orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/vs.cpp: * orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/as.cpp: Fixed compile errors on Redhat Linux. Thanks to Alex Luk for reporting this. Fri Feb 18 10:44:33 2000 Carlos O'Ryan * orbsvcs/Trading_Service/Trading_Service.cpp: While shuting down the Trader will disconnect from its peers. Using a loop like this: for (CORBA::ULong i = count - 1; i > 0; i--) this is obviously busted, if count is 0 then the loop will run for a *long* time, but worse, it crashes when trying to access the sequence. * orbsvcs/tests/Trading/export_test.cpp: * orbsvcs/tests/Trading/run_test.pl: The test was too brittle. Now the export test creates a file just before going into the event look, the script can use that file to launch the import test only after that. * orbsvcs/Notify_Service/Notify_Service.cpp: Fixed a syntax error. This program is obviously not compiled often enough. * orbsvcs/tests/Property/client.cpp: * orbsvcs/tests/Trading/TT_Info.cpp: Don't use CORBA::Any::dump to dump the contents of an Any, that will let us reduce the size of the TAO library by a couple of bytes. Fri Feb 18 08:39:05 2000 Carlos O'Ryan * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPullConsumer.cpp: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPullSupplier.h: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPullSupplier.cpp: Fixed several exception specs, i guess it was too much cut&paste ;-) Fri Feb 18 00:48:43 2000 Nanbor Wang * tao/SHMIOP_Factory.cpp (requires_explicit_endpoint): Changed to return 1, i.e., do not create a SHMIOP endpoint if not explicitly specified by users. Thanks to Carlos for pointing this out. Thu Feb 17 21:48:42 2000 Carlos O'Ryan * utils/catior/catior.cpp: It was still printing IIOP for the SHMIOP protocol, the order of the arguments for an ACE_DEBUG() call was broken. Thu Feb 17 19:05:33 2000 Jeff Parsons * tests/IDL_Test/nested_scope.idl: New file. * tests/IDL_Test/idl_test.dsp: * tests/IDL_Test/Makefile: * tests/IDL_Test/reopened_modules.idl: Removed new example from reopened_modules.idl and added the example plus many similar ones for various data types to new file nested_scope.idl. Thu Feb 17 18:39:36 2000 Jeff Parsons * TAO_IDL/be/be_interface.cpp: * TAO_IDL/be/be_structure.cpp: * TAO_IDL/be/be_union.cpp: * TAO_IDL/be/be_visitor_exception/exception_cs.cpp: * TAO_IDL/be/be_visitor_interface/interface_ch.cpp: * TAO_IDL/be/be_visitor_sequence/sequence_ci.cpp: * TAO_IDL/be/be_visitor_sequence/gen_bounded_sequence_ci.cpp: * TAO_IDL/be/be_visitor_sequence/gen_bounded_sequence_cs.cpp: * TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ci.cpp: * TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_cs.cpp: * TAO_IDL/be/be_visitor_sequence/gen_bounded_str_sequence_ci.cpp: * TAO_IDL/be/be_visitor_sequence/gen_bounded_str_sequence_cs.cpp: * TAO_IDL/be/be_visitor_sequence/gen_bounded_wstr_sequence_ci.cpp: * TAO_IDL/be/be_visitor_sequence/gen_bounded_wstr_sequence_cs.cpp: * TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_ci.cpp: * TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_cs.cpp: * TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ci.cpp: * TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_cs.cpp: More changes necessary to handle the skipped nested scope/repeated name example added to IDL_Tests recently. These changes will deal with all the types at the innermost scope that were causing a problem. Also (see ACE ChangeLog) was able to get rid of the ACE_GLOBAL_COLONS macro that was recently added to deal with SunCC 5.0. Thu Feb 17 18:12:21 2000 Nanbor Wang * docs/interceptors.html: Updated the links for the latest Portable Interceptors Joint Submission. Thu Feb 17 15:32:25 2000 Darrell Brunsch * orbsvcs/orbsvcs/orbsvcs.dsp: * orbsvcs/orbsvcs/orbsvcs_static.dsp: Added the new CosEvent files to the orbsvcs projects. Thu Feb 17 14:44:25 2000 Carlos O'Ryan * orbsvcs/orbsvcs/CosEvent/CEC_EventChannel.h: * orbsvcs/orbsvcs/CosEvent/CEC_EventChannel.i: * orbsvcs/orbsvcs/CosEvent/CEC_EventChannel.cpp: Add support for the pull model. The architecture is very simple, the SupplierAdmin keeps two collections, of ProxyPushConsumer and ProxyPullSupplier objects. Somehow the Pulling_Strategy obtains events from the PullSuppliers connected to the EventChannel and pushes them into the ConsumerAdmin implementation. The ProxyPushConsumer objects also propagate their events to the ConsumerAdmin object. The ConsumerAdmin implementation propagates the events to its two collections, the ProxyPushSuppliers and the ProxyPullSuppliers. The former use the Dispatching strategy to select a thread that will finally deliver the event to the PushConsumer client object. In contrast the ProxyPullSupplier object queues the event until the application invokes pull() or try_pull. * orbsvcs/orbsvcs/CosEvent/CEC_Defaults.h: * orbsvcs/orbsvcs/CosEvent/CEC_Factory.h: * orbsvcs/orbsvcs/CosEvent/CEC_Default_Factory.h: * orbsvcs/orbsvcs/CosEvent/CEC_Default_Factory.i: * orbsvcs/orbsvcs/CosEvent/CEC_Default_Factory.cpp: Add support in the Factory class for the new pull-related components. * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPullConsumer.h: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPullConsumer.i: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPullConsumer.cpp: Implement the CosEventChannelAdmin::ProxyPullConsumer interface. * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPullSupplier.h: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPullSupplier.i: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPullSupplier.cpp: Implement the CosEventChannelAdmin::ProxyPullSupplier interface. * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushSupplier.h: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushSupplier.cpp: Removed all the connected/reconnected/disconnected methods, since they are only relevant for filtering Event Channels. * orbsvcs/orbsvcs/CosEvent/CEC_Pulling_Strategy.h: * orbsvcs/orbsvcs/CosEvent/CEC_Pulling_Strategy.i: * orbsvcs/orbsvcs/CosEvent/CEC_Pulling_Strategy.cpp: PullSuppliers must be polled to get the events they have (if any). There are many strategies to do that, for example, periodically poll all the suppliers, have dedicated threads blocked on pull(), one of each supplier, and there may be other variations too. This class defines the interface for the Pulling strategy. * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_Pulling_Strategy.h: * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_Pulling_Strategy.i: * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_Pulling_Strategy.cpp: A simple implementation of the Pulling strategy. * orbsvcs/orbsvcs/CosEvent/CEC_ConsumerAdmin.h: * orbsvcs/orbsvcs/CosEvent/CEC_ConsumerAdmin.i: * orbsvcs/orbsvcs/CosEvent/CEC_ConsumerAdmin.cpp: Add support for the ProxyPullSupplier objects. New push() method to propagate an event to all the connected consumers. * orbsvcs/orbsvcs/CosEvent/CEC_SupplierAdmin.h: * orbsvcs/orbsvcs/CosEvent/CEC_SupplierAdmin.i: * orbsvcs/orbsvcs/CosEvent/CEC_SupplierAdmin.cpp: Add support for the ProxyPullConsumer objects. * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushConsumer.h: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushConsumer.i: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushConsumer.cpp: Removed all the connected/reconnected/disconnected methods, since they are only relevant for filtering Event Channels. Move the TAO_CEC_Push_Event worker into the CEC_ConsumerAdmin files, because that's where it is used now. * orbsvcs/tests/CosEvent/CosEvent.dsw: * orbsvcs/tests/CosEvent/Basic/Makefile: * orbsvcs/tests/CosEvent/Basic/Basic.dsw: * orbsvcs/tests/CosEvent/Basic/Pull_Push_Event.cpp: * orbsvcs/tests/CosEvent/Basic/Pull_Push_Event.dsp: * orbsvcs/tests/CosEvent/Basic/run_test.pl: New test for the pull-push model, currently disabled because the CORBA::Any class is not thread safe (see [BUGID:430]) * orbsvcs/tests/CosEvent/lib/Counting_Consumer.h: * orbsvcs/tests/CosEvent/lib/Counting_Consumer.cpp: * orbsvcs/tests/CosEvent/lib/Counting_Supplier.h: * orbsvcs/tests/CosEvent/lib/Counting_Supplier.cpp: Implement new helper classes for testing the Pull model. * docs/cec_options.html: Documented the options of the COS Event Channel Factory. * utils/catior/catior.cpp: Updated to understand the SHMIOP options. * orbsvcs/tests/CosEvent/Basic/Push_Event.cpp: Minor cosmetic fix. * orbsvcs/orbsvcs/Makefile: Updated dependencies with TAO_ORBSVCS="Naming Time Property Sched Event CosEvent NativeCosEvent Event2 Notify Trader LifeCycle Log Concurrency" Thu Feb 17 13:51:03 2000 Carlos O'Ryan * orbsvcs/orbsvcs/CosEvent/CEC_Default_Factory.cpp: Let's see if this time I can get it right. The macro name is TAO_ORBSVCS_HAS_XXX not TAO_HAS_ORBSVCS_XXX. Wed Feb 16 16:55:25 2000 Carlos O'Ryan * orbsvcs/orbsvcs/Makefile: Add another -I flag to make the DU C++ compiler happy. Wed Feb 16 15:01:29 2000 Jeff Parsons * TAO_IDL/be/be_interface.cpp: * TAO_IDL/be/be_structure.cpp: * TAO_IDL/be/be_union.cpp: * TAO_IDL/be/be_visitor_exception/exception_cs.cpp: * TAO_IDL/be/be_visitor_sequence/sequence_ci.cpp: * TAO_IDL/be/be_visitor_interface/interface_ch.cpp: * TAO_IDL/be/be_visitor_union/union_cs.cpp: Modified generation of scoped names for arguments and return types to be compatible with scoped names where the nested name repeats after skipping one or more scopes. This was done for interfaces yesterday, these changes were to structure, exception, union, and sequence. Also used the new ACE_GLOBAL_COLONS macro where necessary to avoid SunCC 5.0 going berserk whenever it sees a construction like (::foo::... ). * TAO_IDL/be/be_visitor_interface/thru_poa_collocated_ss.cpp: Removed unnecessary generation of a call to the base class default constructor. Wed Feb 16 08:36:01 2000 Ossama Othman * docs/Options.html: Fixed typographical error. * docs/pluggable_protocols/index.html: * tao/default_resource.cpp (init_protocol_factories): Updated documentation/comments about pluggable protocol svc.conf entries. Thanks to Gilbert Grosdidier for motivating this update. Tue Feb 15 22:56:58 2000 Nanbor Wang * tao/SHMIOP_Transport.cpp (send): Changed to use the new ACE_MEM_IO::send method to send a message block chain. This reduced the number of signaling and should improve performace. Tue Feb 15 19:53:49 2000 Jeff Parsons * TAO_IDL/be/be_interface.cpp: * TAO_IDL/be/be_visitor_interface/interface_ch.cpp: * TAO_IDL/be/be_visitor_interface/interface_cs.cpp: * TAO_IDL/be/be_visitor_interface/interface_sh.cpp: * TAO_IDL/be/be_visitor_interface/interface_ss.cpp: * TAO_IDL/be/be_visitor_interface/smart_proxy_ch.cpp: * TAO_IDL/be/be_visitor_interface/smart_proxy_cs.cpp: * TAO_IDL/be/be_visitor_interface/thru_poa_collocated_sh.cpp: * TAO_IDL/be/be_visitor_interface/thru_poa_collocated_ss.cpp: Changes needed to handle the new nested module use case recently added to IDL_Test. Tue Feb 15 16:55:16 2000 Carlos O'Ryan * orbsvcs/orbsvcs/CosEvent/CEC_Default_Factory.cpp: I was using the wrong macro, it is TAO_HAS_ORBSVCS_Event2, not ACE_HAS_Event2. Tue Feb 15 08:23:35 2000 Carlos O'Ryan * orbsvcs/tests/CosEvent/Basic/Shutdown.cpp: Fixed problems for platforms without native C++ exceptions. Tue Feb 15 08:19:42 2000 Carlos O'Ryan * orbsvcs/orbsvcs/CosEvent/CEC_Default_Factory.cpp: Fixed template instantiation, Event2 uses the same templates, so if it is enabled we should not instantiate the templates. * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushSupplier.h: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushConsumer.h: Cosmetic fixes. Mon Feb 14 18:13:58 2000 Jeff Parsons * TAO_IDL/include/ast_module.h: * TAO_IDL/ast/ast_module.cpp: * TAO_IDL/be/be_generator.cpp: * TAO_IDL/util/utl_scope.cpp: Extension of fix below that doesn't depend on order of events inside AST_Module constructor body. Also removes static variable declared inside AST_Module constructor body. Mon Feb 14 13:01:53 2000 Jeff Parsons * TAO_IDL/util/utl_scope.cpp: In the check for redefinition of a scope immediately inside itself, add a check for a null pointer to Identifier. This was causing seg faults on many platforms. Mon Feb 14 10:16:15 2000 Ossama Othman * tao/Acceptor_Registry.h: Removed inclusion of extraneous headers. * tao/Makefile: Updated dependencies. Mon Feb 14 08:25:32 2000 Darrell Brunsch * examples/Simple/time/Time.idl: * examples/Simple/time/Time_Client_i.cpp: * examples/Simple/time/Time_i.cpp: * examples/Simple/time/Time_i.h: The Time interface had a time method in it (A no-no in IDL). Changed time () to current_time (). Mon Feb 14 02:47:55 2000 Nanbor Wang * tests/Interceptors/server.cpp (main): Changed to activate the servant explicitly so it would use the right POA. Thanks to Russell L. Carter for reporting this. Sun Feb 13 11:09:41 2000 Douglas C. Schmidt * tao/TAO: Added a fini() method so that the TAO_ORB_Manager can be instructed not to try to destroy the RootPOA a second time. Thanks to Boris Sukholitko for reporting this. Sat Feb 12 21:06:56 2000 Carlos O'Ryan * orbsvcs/tests/Event/Basic/Bitmask.cpp: * orbsvcs/tests/Event/Basic/Complex.cpp: * orbsvcs/tests/Event/Basic/Negation.cpp: Removed last hardcoded expected counts. Use the count from the suppliers to predict the number of received events. * orbsvcs/tests/Event/Basic/Timeout.cpp: Use dump_results() to show the results. The test can fail under heavy system load because some timers can be missed. Sat Feb 12 20:57:29 2000 Carlos O'Ryan * orbsvcs/tests/Event/Basic/Bitmask.cpp: * orbsvcs/tests/Event/Basic/Negation.cpp: Sat Feb 12 15:58:54 2000 Carlos O'Ryan * orbsvcs/orbsvcs/orbsvcs.dsp: * orbsvcs/orbsvcs/orbsvcs_static.dsp: Add the new files to the MSVC projects. * orbsvcs/tests/CosEvent/CosEvent.dsw: * orbsvcs/tests/CosEvent/Basic/Disconnect.dsp: * orbsvcs/tests/CosEvent/Basic/Shutdown.dsp: * orbsvcs/tests/Event/Event.dsw: Add workspaces for the new CosEvent tests, and update the Event tests workspace. Sat Feb 12 13:37:48 2000 Carlos O'Ryan * orbsvcs/orbsvcs/Makefile: Implemented a new version of the COS Event Service. This version is based on the experience gained while implemented the second generation of TAO's Real-time Event Service. Special care has been taken to make it flexible, scalable, support multiple threads and be exception safe. The current version does not support the Pull model, but soon it will. * orbsvcs/orbsvcs/CosEvent/CEC_EventChannel.h: * orbsvcs/orbsvcs/CosEvent/CEC_EventChannel.i: * orbsvcs/orbsvcs/CosEvent/CEC_EventChannel.cpp: Implement the CosEventChannelAdmin::EventChannel interface, also serve as a big Mediator among all the other internal classes. All the object it requires are created using an Abstract Factory, in turn this factory is dynamically loaded using the Service Configurator. * orbsvcs/orbsvcs/CosEvent/CEC_ConsumerAdmin.h: * orbsvcs/orbsvcs/CosEvent/CEC_ConsumerAdmin.i: * orbsvcs/orbsvcs/CosEvent/CEC_ConsumerAdmin.cpp: Implement the CosEventChannelAdmin::ConsumerAdmin interface. The internal collections are implemented using TAO_EC_Proxy_Collection which provide several iteration strategies, underlying data structures and MT-safe vs. lock-free implementations. * orbsvcs/orbsvcs/CosEvent/CEC_SupplierAdmin.h: * orbsvcs/orbsvcs/CosEvent/CEC_SupplierAdmin.i: * orbsvcs/orbsvcs/CosEvent/CEC_SupplierAdmin.cpp: Implement the CosEventChannelAdmin::SupplierAdmin interface. As the ConsumerAdmin classes they use TAO_EC_Proxy_Collection. * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushConsumer.h: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushConsumer.i: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushConsumer.cpp: Implement the CosEventChannelAdmin::ProxyPushConsumer interface. * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushSupplier.h: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushSupplier.i: * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushSupplier.cpp: Implement the CosEventChannelAdmin::ProxyPushSupplier interface. * orbsvcs/orbsvcs/CosEvent/CEC_ConsumerControl.h: * orbsvcs/orbsvcs/CosEvent/CEC_ConsumerControl.i: * orbsvcs/orbsvcs/CosEvent/CEC_ConsumerControl.cpp: Define the interface for the consumer control strategy, i.e. how does the event channel deal with misbehaving or dead consumers. * orbsvcs/orbsvcs/CosEvent/CEC_SupplierControl.h: * orbsvcs/orbsvcs/CosEvent/CEC_SupplierControl.i: * orbsvcs/orbsvcs/CosEvent/CEC_SupplierControl.cpp: Ditto for suppliers * orbsvcs/orbsvcs/CosEvent/CEC_Dispatching.h: * orbsvcs/orbsvcs/CosEvent/CEC_Dispatching.i: * orbsvcs/orbsvcs/CosEvent/CEC_Dispatching.cpp: The dispatching strategy, it collaborates with the ProxyPushSupplier to efficiently dispatch the events to the consumers. * orbsvcs/orbsvcs/CosEvent/CEC_Factory.h: * orbsvcs/orbsvcs/CosEvent/CEC_Factory.i: * orbsvcs/orbsvcs/CosEvent/CEC_Factory.cpp: Define the Abstract Factory interface. * orbsvcs/orbsvcs/CosEvent/CEC_Default_Factory.h: * orbsvcs/orbsvcs/CosEvent/CEC_Default_Factory.i: * orbsvcs/orbsvcs/CosEvent/CEC_Default_Factory.cpp: Default implementation of the TAO_CEC_Factory interface. It parses the arguments provided by the service configurator to choose at initialization time the strategies that would be used by the Event Channel. * orbsvcs/orbsvcs/CosEvent/CEC_Defaults.h: Default values for the various parameters in the Event Channel and its default strategy factory. * orbsvcs/orbsvcs/CosEvent/CEC_MT_Dispatching.h: * orbsvcs/orbsvcs/CosEvent/CEC_MT_Dispatching.i: * orbsvcs/orbsvcs/CosEvent/CEC_MT_Dispatching.cpp: Implement a multi-threaded dispatching strategy. Based on a single message queue, each message is a command object that either dispatches the event or shutdowns the dispatching thread. * orbsvcs/orbsvcs/CosEvent/CEC_Dispatching_Task.h: * orbsvcs/orbsvcs/CosEvent/CEC_Dispatching_Task.i: * orbsvcs/orbsvcs/CosEvent/CEC_Dispatching_Task.cpp: Helper classes to implement the MT dispatching strategy. * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_ConsumerControl.h: * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_ConsumerControl.i: * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_ConsumerControl.cpp: * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_SupplierControl.h: * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_SupplierControl.i: * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_SupplierControl.cpp: A simple implementation of the control strategies, they periodically poll all the consumers (or suppliers), if they are not available they are removed from the Event Service. * orbsvcs/orbsvcs/Event/EC_Default_Factory.cpp: Fixed bug in single-threaded configurations for the proxy collections. * orbsvcs/orbsvcs/Event/EC_ProxyConsumer.cpp: * orbsvcs/orbsvcs/Event/EC_ProxySupplier.cpp: Added comments on potential exception handling pitfalls. * orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.cpp: Removed uneeded #include * orbsvcs/orbsvcs/Event/EC_Defaults.h: The default configuration should be MT-safe, it is easier to explain how the configuration can be optimized for the ST case than explain why it is not safe by default. * orbsvcs/tests/Makefile: * orbsvcs/tests/CosEvent/Makefile: * orbsvcs/tests/CosEvent/Basic/Makefile: * orbsvcs/tests/CosEvent/Basic/Basic.dsw: * orbsvcs/tests/CosEvent/Basic/run_test.pl: * orbsvcs/tests/CosEvent/Basic/Disconnect.cpp: * orbsvcs/tests/CosEvent/Basic/Disconnect.dsp: * orbsvcs/tests/CosEvent/Basic/MT_Disconnect.h: * orbsvcs/tests/CosEvent/Basic/MT_Disconnect.cpp: * orbsvcs/tests/CosEvent/Basic/MT_Disconnect.dsp: * orbsvcs/tests/CosEvent/Basic/Push_Event.cpp: * orbsvcs/tests/CosEvent/Basic/Push_Event.dsp: * orbsvcs/tests/CosEvent/Basic/Shutdown.cpp: * orbsvcs/tests/CosEvent/Basic/Shutdown.dsp: * orbsvcs/tests/CosEvent/lib/Makefile: * orbsvcs/tests/CosEvent/lib/CECTest.dsw: * orbsvcs/tests/CosEvent/lib/CECTest.dsp: * orbsvcs/tests/CosEvent/lib/cectest_export.h: * orbsvcs/tests/CosEvent/lib/Counting_Consumer.cpp: * orbsvcs/tests/CosEvent/lib/Counting_Consumer.h: * orbsvcs/tests/CosEvent/lib/Counting_Supplier.cpp: * orbsvcs/tests/CosEvent/lib/Counting_Supplier.h: Tests for the new implementation of the CosEventService. The include tests for: - Event Delivery (multiple threads) - Proper disconnection - Proper disconnection with multiple threads - Shutdown procedures for the Event Channel. * orbsvcs/tests/Event/Basic/Wildcard.cpp: This test was not destroying the ORB. Sometimes in our heavily loaded "compilation servers" timer was not expiring the expected number of times, possibly because the host was too loaded and the process was not scheduled often enough. I base the test on the number of messages actually sent, not the number of timeouts expected, this seems to work much better. * orbsvcs/tests/Event/Basic/Bitmask.cpp: * orbsvcs/tests/Event/Basic/run_test.pl: The bitmask test requires the Prefix_Filter_Builder. * orbsvcs/tests/Event/Basic/Complex.cpp: * orbsvcs/tests/Event/Basic/MT_Disconnect.cpp: Cosmetic fixes. * orbsvcs/tests/Event/lib/Counting_Consumer.cpp: * orbsvcs/tests/Event/lib/Counting_Supplier.cpp: If the event channel sends the disconnect callback there is no sense in trying to disconnect from it: the proxy is already destroyed. * taoconfig.mk: Removed TSS_ORB_FLAG it has been obsolete for too long to even remember what it was. * orbsvcs/orbsvcs/Notify/Notify_EventChannelFactory_i.cpp: I accidentaly removed some template instantations during my code review. Sat Feb 12 10:29:28 2000 Nanbor Wang * docs/releasenotes/orbcore.html: * docs/Options.html: Added information about shared memory transport. Fri Feb 11 19:50:24 2000 Jeff Parsons * TAO_IDL/ast/ast_argument.cpp * TAO_IDL/ast/ast_array.cpp * TAO_IDL/ast/ast_attribute.cpp * TAO_IDL/ast/ast_concrete_type.cpp * TAO_IDL/ast/ast_constant.cpp * TAO_IDL/ast/ast_enum.cpp * TAO_IDL/ast/ast_enum_val.cpp * TAO_IDL/ast/ast_exception.cpp * TAO_IDL/ast/ast_expression.cpp * TAO_IDL/ast/ast_field.cpp * TAO_IDL/ast/ast_interface_fwd.cpp * TAO_IDL/ast/ast_module.cpp * TAO_IDL/ast/ast_native.cpp * TAO_IDL/ast/ast_operation.cpp * TAO_IDL/ast/ast_predefined_type.cpp * TAO_IDL/ast/ast_root.cpp * TAO_IDL/ast/ast_sequence.cpp * TAO_IDL/ast/ast_string.cpp * TAO_IDL/ast/ast_structure.cpp * TAO_IDL/ast/ast_type.cpp * TAO_IDL/ast/ast_typedef.cpp * TAO_IDL/ast/ast_union.cpp * TAO_IDL/ast/ast_union_branch.cpp * TAO_IDL/ast/ast_union_label.cpp * TAO_IDL/include/ast_argument.h * TAO_IDL/include/ast_array.h * TAO_IDL/include/ast_attribute.h * TAO_IDL/include/ast_concrete_type.h * TAO_IDL/include/ast_constant.h * TAO_IDL/include/ast_enum.h * TAO_IDL/include/ast_enum_val.h * TAO_IDL/include/ast_exception.h * TAO_IDL/include/ast_expression.h * TAO_IDL/include/ast_field.h * TAO_IDL/include/ast_interface_fwd.h * TAO_IDL/include/ast_module.h * TAO_IDL/include/ast_native.h * TAO_IDL/include/ast_operation.h * TAO_IDL/include/ast_predefined_type.h * TAO_IDL/include/ast_root.h * TAO_IDL/include/ast_sequence.h * TAO_IDL/include/ast_string.h * TAO_IDL/include/ast_structure.h * TAO_IDL/include/ast_type.h * TAO_IDL/include/ast_typedef.h * TAO_IDL/include/ast_union.h * TAO_IDL/include/ast_union_branch.h * TAO_IDL/include/ast_union_label.h Took the destructor bodies out of the header file, in preparation for someday adding some memory manangement to them. Fri Feb 11 18:20:51 2000 Jeff Parsons * TAO_IDL/fe/idl.yy: * TAO_IDL/fe/y.tab.h: * TAO_IDL/fe/y.tab.cpp: * TAO_IDL/ast/ast_module.cpp: * TAO_IDL/util/utl_scope.cpp: The prevention of the redefinition of a scope within itself was preventing that redefinition not just in the scope immediately within, but in all contained scopes. Thanks to Klaus Hofmann for sending in the example IDL file that pointed this out. * tests/IDL_Test/reopened_modules: Added Klaus Hofmann's example IDL file to the group. Fri Feb 11 14:56:58 2000 Nanbor Wang * tao/TAO_Internal.cpp: I forgot to add the initialization for SHMIOP_Protocol_Factory's static service. And it was causing the tests/ORB_init test to fail. Thanks to Bala for reporting this. Fri Feb 11 13:48:33 2000 Jeff Parsons * TAO_IDL/fe/idl.yy: * TAO_IDL/fe/y.tab.h: * TAO_IDL/fe/y.tab.cpp: * TAO_IDL/ast/ast_module.cpp: Changes to prevent modules, interrfaces, structs, unions, valuetypes and exeptions from being redefined immediately inside their own scope. This closes out Bugzilla bug #417. Thanks to Alia Atlas for sending in an example IDL file. Fri Feb 11 10:22:15 2000 Jeff Parsons * TAO_IDL/be/be_visitor_valuetype/valuetype.cpp: I overlooked this fix for valuetypes similar to the one for attributes in my entry for yesterday. Fri Feb 11 09:53:30 2000 Jeff Parsons * tests/IDL_Test/reopened_modules.idl: File had incorrect IDL, but version of IDL compiler before recent changes was accepting it. Thu Feb 10 22:14:06 2000 Carlos O'Ryan * orbsvcs/orbsvcs/orbsvcs.dsp: * orbsvcs/orbsvcs/orbsvcs_static.dsp: * orbsvcs/tests/Event/Basic/Basic.dsw: * orbsvcs/tests/Event/Basic/Complex.dsp: * orbsvcs/tests/Event/Basic/Disconnect.dsp: Add new files to the project. Thu Feb 10 22:04:29 2000 Jeff Parsons * TAO_IDL/fe/idl.yy: * TAO_IDL/fe/y.tab.h; * TAO_IDL/fe/y.tab.cpp: * TAO_IDL/include/ast_decl.h: * TAO_IDL/ast/ast_decl.cpp: * TAO_IDL/be/be_visitor_attribute/attribute.cpp: Changes to enable call to 'delete' on the scoped name member in the destructor of all instances of AST_Decl.Specifically, code generation for arguments and attributes had to be modified to avoid double deletion in those cases. An IDL file with a large number of enums was causing the IDL comiler to run out of heap memory. These changes and the changes to utl_string.cpp in the ChangeLog entry below have fixed that problem. Thanks to Ted Nolan SRI Augusta GA for sending in the IDL file. * TAO_IDL/util/utl_string.cpp: Cosmetic changes. Thu Feb 10 15:14:02 2000 Jeff Parsons * TAO_IDL/fe/idl.yy: * TAO_IDL/fe/y.tab.h: * TAO_IDL/fe/y.tab.cpp: Added scope argument to call to create_module(). * TAO_IDL/include/utl_string.h: Uninlined destructor (see below). * TAO_IDL/include/ast_generator.h: * TAO_IDL/include/utl_scope.h: * TAO_IDL/be_include/be_generator.h: * TAO_IDL/ast/ast_generator.cpp: * TAO_IDL/ast/ast_module.cpp: * TAO_IDL/ast/ast_operation.cpp: * TAO_IDL/be/be_generator.cpp: * TAO_IDL/util/utl_scope.cpp: Change in approach to handling reopened modules in IDL files. The front end used to create a new node each time a module was reopened, resulting in several brittle additions to the lookup functions. Now, when a module is reopened, the original node is returned for additions to its scope, and the lookup functions have been simplified. Thanks to Andreas Terstegge for sending in an example IDl file that pointed out this bug. This closes out Bugzilla bug #400 * TAO_IDL/util/utl_string.cpp: Added calls to 'delete' in destructor for two char* members which are always initialized by calls to 'new'. Thu Feb 10 14:10:32 2000 Nanbor Wang * TAO/TAO.dsp: * TAO/TAO_Static.dsp: Added SHMIOP_* files. Thu Feb 10 13:25:07 2000 Nanbor Wang * TAO/tao/SHMIOP_Acceptor.h: * TAO/tao/SHMIOP_Acceptor.i: * TAO/tao/SHMIOP_Acceptor.cpp: * TAO/tao/SHMIOP_Connect.h: * TAO/tao/SHMIOP_Connect.i: * TAO/tao/SHMIOP_Connect.cpp: * TAO/tao/SHMIOP_Connector.h: * TAO/tao/SHMIOP_Connector.cpp: * TAO/tao/SHMIOP_Factory.h: * TAO/tao/SHMIOP_Factory.cpp: * TAO/tao/SHMIOP_Profile.h: * TAO/tao/SHMIOP_Profile.i: * TAO/tao/SHMIOP_Profile.cpp: * TAO/tao/SHMIOP_Transport.h: * TAO/tao/SHMIOP_Transport.cpp: Added shmiop:// pluggable protocol. * TAO/tao/corbafwd.h: Uncommented TAO_TAG_SHMEM_PROFILE. * TAO/tao/default_resource.cpp: Added SHMIOP in to be loaded by default if SHMIOP is enable on this platform. * TAO/tao/orbconf.h: Added macro definition to enable SHMIOP by default. * TAO/tao/Makefile: Added SHMIOP_* files and updated file dependencies. Wed Feb 09 12:30:00 2000 Michael Kircher * tests/AMI/ami_test.idl, tests/AMI/ami_test_i.cpp, tests/AMI/simple_client.cpp: Made the exception handling test more descriptive. Wed Feb 9 21:26:46 2000 Ossama Othman * tao/ORB_Core.cpp (init): Moved parsing of "-ORBSvcConfDirective" before "-ORBSvcConf" because "-ORBSvcConf" was interpreting "Directive" as its argument. The CORBA spec states that ORB options should be recognized if there is no space between the option and its argument. As such this was an "order of parsing" problem, not a problem with the option parser itself. Thanks to Dale Wood for providing a fix. Wed Feb 9 20:56:27 2000 Carlos O'Ryan * orbsvcs/orbsvcs/Notify/NotifyPublish_i.h: * orbsvcs/orbsvcs/Notify/ID_Pool_T.cpp: * orbsvcs/orbsvcs/Notify/ID_Pool_T.h: * orbsvcs/orbsvcs/Notify/NotifyPublish_i.h: * orbsvcs/orbsvcs/Notify/NotifySubscribe_i.h: * orbsvcs/orbsvcs/Notify/Notify_Constraint_Interpreter.cpp: * orbsvcs/orbsvcs/Notify/Notify_ConsumerAdmin_i.h: * orbsvcs/orbsvcs/Notify/Notify_Dispatcher.cpp: * orbsvcs/orbsvcs/Notify/Notify_EventChannelFactory_i.cpp: * orbsvcs/orbsvcs/Notify/Notify_EventChannelFactory_i.h: * orbsvcs/orbsvcs/Notify/Notify_EventChannel_i.cpp: * orbsvcs/orbsvcs/Notify/Notify_EventChannel_i.h: Made a first code review, much work to do. Wed Feb 9 22:07:44 2000 Pradeep Gore * orbsvcs/orbsvcs/Notify/Notify_EventChannelFactory_i.cpp: * orbsvcs/orbsvcs/Notify/Notify_EventChannel_i.cpp: fixes for warnings and link errors with g++ on SunOS7 Wed Feb 9 14:56:20 2000 Carlos O'Ryan * orbsvcs/orbsvcs/Makefile: * orbsvcs/orbsvcs/Event/EC_Prefix_Filter_Builder.h: * orbsvcs/orbsvcs/Event/EC_Prefix_Filter_Builder.i: * orbsvcs/orbsvcs/Event/EC_Prefix_Filter_Builder.cpp: * orbsvcs/orbsvcs/Event/EC_Default_Factory.cpp: New filter builder, it parses the ConsumerQOS structure assuming that the filters are in prefix notation, i.e. each conjunction, disjunction or logical_and filter indicates how many children it has. This notation is more consistent and allow us to easily express complex filters like: (type == 5 && source != 10) or ((type == 5 && source != 10) || !(type == 2 && source == 8)) * orbsvcs/orbsvcs/Event/EC_And_Filter.h: * orbsvcs/orbsvcs/Event/EC_And_Filter.i: * orbsvcs/orbsvcs/Event/EC_And_Filter.cpp: New filter, it only accepts an event if all its children do. Unlikely the conjunction filter that waits for all the children to accept at least one event. * orbsvcs/orbsvcs/Event_Utilities.h: * orbsvcs/orbsvcs/Event_Utilities.cpp: Add support for the prefix notation. * orbsvcs/orbsvcs/Event/EC_Conjunction_Filter.h: Fixed some comments. * orbsvcs/tests/Event/Basic/Makefile: * orbsvcs/tests/Event/Basic/Complex.cpp: * orbsvcs/tests/Event/Basic/run_test.pl: * orbsvcs/tests/Event/Basic/svc.complex.conf: Add new test to check that complex filters can be defined using the prefix notation. * orbsvcs/tests/Event/lib/Makefile: * orbsvcs/tests/Event/lib/Counting_Supplier.cpp: * orbsvcs/tests/Event/lib/Driver.cpp: Use the ConsumerQoS_Factory with support for the prefix notation. Wed Feb 9 13:48:30 2000 Carlos O'Ryan * orbsvcs/tests/Event/lib/Counting_Supplier.cpp: Fixed connect() call, it was using the wrong variable to check if it was connected already. Tue Feb 08 15:17:13 2000 Irfan Pyarali * tests/Nested_Event_Loop: I was using a ulong to hold the value of a pointer. This is problematic on platforms where the pointer is 64 bits and the ulong takes 32 bits. Therefore, the new scheme uses an octet sequence to solve this size disparity. Thanks to Nanbor for the suggestion. Tue Feb 8 01:26:29 2000 Pradeep Gore * orbsvcs/orbsvcs/Notify/Notify_EventChannelFactory_i.{h,cpp}: * orbsvcs/orbsvcs/Notify/Notify_EventChannel_i.{h,cpp}: * orbsvcs/orbsvcs/Notify/Notify_SupplierAdmin_i.{h,cpp}: * orbsvcs/orbsvcs/Notify/Notify_ConsumerAdmin_i.{h.cpp}: Added missing implementation for administrative methods. Mon Feb 7 15:31:54 2000 Jeff Parsons * TAO_IDL/be_include/be_union.h: * TAO_IDL/be/be_union.cpp: * TAO_IDL/be_include/be_union_branch.h: * TAO_IDL/be/be_union_branch.cpp: * TAO_IDL/be_visitor_union/union_ch.cpp: * TAO_IDL/be_visitor_union/union_ci.cpp: * TAO_IDL/be_visitor_union/union_cs.cpp: * TAO_IDL/be/be_visitor_typecode/typecode_defn.cpp: The IDL compiler has been generating a separate member typecode inside the union for each duplicate case label, but the TypeCode class contains no state (and therefore no methods using such state) containing info about multiple case labels - only about members. Typecode generation was changed to generate just one typecode for each member with the value of the first case label encountered for that member. The private union function _discriminant() (called by (de)marshaling code) was modified to return this value no matter what the actual current discriminant value may be. Thanks to Christopher Kohlhoff for sending in yet another IDL file/test code example that got to the crux of this matter. * tests/IDL_Test/union.idl: * tests/IDL_Test/main.cpp: Added an expanded version of Chris Kohlhoff's example to IDL_Test. Mon Feb 07 12:15:00 2000 Michael Kircher * tests/AMI/run_test.pl: Set the "-x" switch on the client, this will cause it to shut down properly. * tests/AMI/simple_client.cpp: Activated the "-x" switch behavior to shut down the ORB, also added a more descriptive debugging output for exception handling. Sat Feb 05 04:24:09 2000 Irfan Pyarali * tao/Leader_Follower: The leader followers class did not support nested calls to the event loop, i.e., calling perform_work() or run() from the servant code. In order to accommodate this feature the following changes were made: - server_threads* was renamed to event_loop_threads* since this name was more appropriate. - In set_event_loop_thread(), if we are the client thread running the show, then it is ok and we down have to wait. - Changes to are made more carefully now. Both the values of and are taken into account since they may signify that we are already a leader. Since set_client_thread() and reset_client_thread() both became more careful, set_client_leader_thread() and reset_client_leader_thread() became easier. Also, code in the wait strategies became a bit easier. - was changed from a flag to , a counter that keeps track of how many nested event loop call we have made. Thanks to Dave Meyer for suggesting the addition of this missing feature! * tests/Nested_Event_Loop: A new test for invoking nested event loop calls from user code, i.e., a call to perform_work() or run() from the implementation of the servant. Fri Feb 04 22:28:16 2000 Irfan Pyarali * tao/GIOP_Server_Request.cpp (parse_header_lite): Recent auto compile failures to MT_Cubit were caused by the following change: Mon Jan 10 12:53:08 2000 Jeff Parsons Jeff changed TAO_GIOP_ServerRequest::parse_header_std but not TAO_GIOP_ServerRequest::parse_header_lite. Why this bug which was there since Jan 10 only surfaced after the following change: Thu Feb 3 17:47:14 2000 Jeff Parsons is left as an exercise to the reader ;-) Fri Feb 4 00:22:51 2000 Pradeep Gore * docs/releasenotes/index.html: added a section for the Notification Service. Thu Feb 3 19:06:58 2000 Ossama Othman * tests/DSI_Gateway/test_dsi.cpp (invoke): Added missing ACE_CHECK after call to ORB::shutdown(). Thu Feb 3 20:55:18 2000 Jeff Parsons * TAO_IDL/be/be_visitor_union/union_cs.cpp: Added code generation to initialize the union's discriminant in the default constructor. This ensures that, if an uninitialized union is inserted into an Any, whether by itself or contained in some constructed type, the Any destructor's call to deep_free() will execute properly. The discriminator must be set to the first case label value of the first member declared in the union. Thanks to Christopher Kohlhoff for sending in the example that uncovered this bug. Thu Feb 3 17:47:14 2000 Jeff Parsons * tao/DomainC.cpp: * tao/GIOP.cpp: * tao/ImplRepoC.cpp: * tao/InterfaceC.cpp: * tao/MessagingC.cpp: * tao/Object.cpp: * tao/POAC.cpp: * tao/PolicyC.cpp: * tao/PollableC.cpp: * tao/Stub.cpp: * TAO_IDL/be/be_visitor_operation/operation_cs.cpp: Another temporary workaround to enable the coexistence of reliable oneways requests and regular twoway requests until we have GIOP 1.2 fully in place. There were compatibility problems with Java servers. Thanks to Lothar Werzinger for reporting this problem. Thu Feb 03 16:12:01 2000 Irfan Pyarali * tao/Leader_Follower.i (~TAO_LF_Server_Thread_Helper): The charanga (Linux box) Exceptions auto build caught the type problem described in bug 416. In this case, a client thread completed its twoway call and while giving up leadership, it noticed that there were server threads waiting to become the leaders. Hence it sent a broadcast to the server threads and did not wake any of the followers. In the meantime, however, the server threads had timed out, and therefore did not select a new leader. So the fix is for the server thread to always select a new leader if needed, irrespective of whether a server thread was able to become a leader or it had timed out. reset_server_thread() was removed and ~TAO_LF_Server_Thread_Helper was given the responsibility. * tao/ORB_Core.cpp (run): No need to call server_thread_helper.reset_server_thread() explicitly anymore. ~TAO_LF_Server_Thread_Helper will take care of it. Thu Feb 3 13:40:42 2000 Nagarajan Surendran * orbsvcs/tests/AVStreams/mpeg/source/server/server.cpp: * orbsvcs/tests/AVStreams/mpeg/source/server/Machine_Properties.{h,cpp}: * orbsvcs/tests/AVStreams/mpeg/source/server/Property_Exporter.{h,cpp}: * orbsvcs/tests/AVStreams/mpeg/source/server/Video_Repository.{h,cpp}: * orbsvcs/tests/AVStreams/mpeg/source/server/augmented_server.cpp: Fixed all the TAO_ exception macros to ACE_ exception macros. * orbsvcs/tests/AVStreams/mpeg/source/server/Makefile: Added libAVSvc to the LDLIBS and -DTAO_ORBSVCS_HAS_Trader to the Makefile so that the TAO_String_Hash_Key class doesn't get defined twice. Thanks to Alex Luk and Kenneth Osenbroch for reporting this. Thu Feb 3 10:31:05 2000 Carlos O'Ryan * orbsvcs/orbsvcs/Makefile: Disable the new event channel with old versions of g++, they are too busted to even try to get them to work. Wed Feb 2 19:15:09 2000 Darrell Brunsch * orbsvcs/orbsvcs/orbsvcs.dsp: Added the two filters Carlos created to the MSVC project file. Wed Feb 2 17:49:33 2000 Ossama Othman * docs/pluggable_protocols/index.html: Updated the "Notes from a Real World Pluggable Protocol Implementation" section so that it no longer states that changes to ACE and TAO were necessary. Changes to ACE and TAO weren't necessary for that implementation. Wed Feb 2 19:17:13 2000 Douglas C. Schmidt * docs/pluggable_protocols/index.html: Updated the documentation to clarify the conditions under which a pluggable protocol can be developed without affecting ACE+TAO. Thanks to Gilbert Grosdidier for motivating this. Wed Feb 2 17:29:34 2000 Jeff Parsons * TAO_IDL/be/be_visitor_typecode/typecode_defn.cpp: One more fix to this file. Nothing was breaking, but it was pointed out, again by Christopher Kohlhoff that, even though the members with multiple case labels were getting generated only once, the encapsulated length was calculated as if they were included more than once. Wed Feb 2 14:14:52 2000 Carlos O'Ryan * orbsvcs/tests/EC_Custom_Marshal/ECM_Supplier.cpp: Fixed race condition during shutdown. The EC can die before the supplier has a chance to disconnect. In that case when trying to disconnect the supplier receives an exception that should be ignored. Wed Feb 2 13:12:07 2000 Carlos O'Ryan * docs/releasenotes/ec.html: Updated. Wed Feb 2 14:03:00 2000 Jeff Parsons * TAO_IDL/be/be_visitor_typecode/typecode_defn.cpp My fix of Feb. 1 regarding multiple case labels and typecode generation broke two use cases. One, reported by Christopher Kohlhoff was when a previously defined struct is nested inside a union. The other, when a union is recursive, appeared when the DII versions of the param tests were failing. This fix restores generation of correct typecodes for unions with nested structs, recursive members, and when any of its members (nested, recursive or vanilla) has multiple case labels Wed Feb 2 08:39:29 2000 Carlos O'Ryan * orbsvcs/orbsvcs/Event/EC_Default_Factory.cpp: Some platforms do no recursiong when instantiating templates (that is not ANSI-compliant, btw), I added missing template instantiations those platforms. * orbsvcs/tests/Event/Basic/Atomic_Reconnect.cpp: Fixed warning about signed/unsigned comparisons. Tue Feb 1 19:56:08 2000 Jeff Parsons * TAO_IDL/fe/idl.yy: * TAO_IDL/fe/y.tab.cpp: * TAO_IDL/fe/y.tab.h: Added code to yacc file to prevent a crash when an IDL file set a union's discriminator type to octet, or typedef of octet. It now just outputs the error message. This closes out bug #121. Tue Feb 1 17:43:09 2000 Nagarajan Surendran * orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/Command_Handler.cpp: * orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/ctr.cpp: Fixed compile errors and warning with egcs-1.1.1 on Sun OS 5.7. Thanks to Alex Luk and Kenneth Osenbroch for reporting this. Tue Feb 1 16:50:28 2000 Nagarajan Surendran * orbsvcs/tests/AVStreams/mpeg_shared/com.cpp: * orbsvcs/tests/AVStreams/mpeg_shared/fileio.cpp: * orbsvcs/tests/AVStreams/mpeg_shared/filters.cpp: * orbsvcs/tests/AVStreams/mpeg_shared/routine.cpp: * orbsvcs/tests/AVStreams/mpeg_shared/sendpt.cpp: * orbsvcs/tests/AVStreams/mpeg_mib/mibDrawArea.cpp: Fixed warnings for egcs on SunOS5.7. Tue Feb 1 13:51:21 2000 Carlos O'Ryan * docs/ec_options.html: Documented the compile time options for the RTEC. Tue Feb 1 14:14:11 2000 Jeff Parsons * TAO_IDL/be_include/be_union_branch.h: * TAO_IDL/be/be_union_branch.cpp: * TAO_IDL/be/be_visitor_typecode/typecode_defn.cpp: Prevented multiple generations of typecode for a union member with multiple case labels. The CORBA spec requires that the limit for an index supplied to member_label, member_type, etc. not exceed the member count, otherwise a Bounds exception is thrown. The TAO CDR_Interpreter operates on the same assumption, and it was crashing on unions with members having multiple case labels. Thanks to Christopher Kohlhoff for reporting this bug. Tue Feb 1 11:25:00 2000 Carlos O'Ryan * orbsvcs/orbsvcs/Event/EC_Type_Filter.cpp: More fixes in the can_match() routine, this is why we need something better that "0" as a wildcard for source and/or type. * orbsvcs/tests/EC_Custom_Marshal/ECM_Supplier.cpp: It was using the wrong object reference to disconnect * orbsvcs/tests/Event/Basic/Atomic_Reconnect.h: * orbsvcs/tests/Event/Basic/Atomic_Reconnect.cpp: * orbsvcs/tests/Event/lib/Counting_Consumer.cpp: * orbsvcs/tests/Event/lib/Counting_Supplier.cpp: Fixed several bugs in the connect/disconnect calls and their use. * orbsvcs/orbsvcs/Event/EC_Basic_Filter_Builder.cpp: * orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.cpp: * orbsvcs/orbsvcs/Event/EC_Defaults.h: * orbsvcs/orbsvcs/Event/EC_Per_Supplier_Filter.cpp: * orbsvcs/orbsvcs/Event/EC_ProxyConsumer.cpp: * orbsvcs/orbsvcs/Event/EC_ProxySupplier.cpp: * orbsvcs/orbsvcs/Event/EC_Supplier_Filter.cpp: Added some debugging messages (that are not compiled by default). * orbsvcs/tests/EC_Throughput/ec.conf: * orbsvcs/tests/Event/Basic/svc.conf: Fixed configuration scripts. Mon Jan 31 19:44:02 2000 Carlos O'Ryan * orbsvcs/orbsvcs/Event/EC_Default_Factory.cpp: More tweaking to get the templates to compile on every platform. Mon Jan 31 21:32:14 2000 Carlos O'Ryan * orbsvcs/tests/Event/lib/ECTest.dsp: Add the new files to the MSVC project file. Mon Jan 31 19:32:56 2000 Carlos O'Ryan * orbsvcs/tests/Event/Event.dsw: * orbsvcs/tests/Event/Basic/Basic.dsw: * orbsvcs/tests/Event/Basic/Bitmask.dsp: * orbsvcs/tests/Event/Basic/Disconnect.dsp: * orbsvcs/tests/Event/Basic/Negation.dsp: * orbsvcs/tests/Event/Basic/Timeout.dsp: * orbsvcs/tests/Event/Basic/Wildcard.dsp: Updated the project files and workspaces, included the new project for the bitmask test. Mon Jan 31 19:02:34 2000 Carlos O'Ryan * orbsvcs/orbsvcs/Event/EC_Bitmask_Filter.h: * orbsvcs/orbsvcs/Event/EC_Bitmask_Filter.i: * orbsvcs/orbsvcs/Event/EC_Bitmask_Filter.cpp: This filter quickly rejects events that do not match a given bitmask. If the event is not rejected based on the mask then the child is consulted to finally accept or reject the event. When composed with the Null_Filter it accepts any events that satisfy: (event.header.type & type_mask) != 0 && (event.header.type & source_mask) != 0 * orbsvcs/orbsvcs/Event/EC_Masked_Type_Filter.h: * orbsvcs/orbsvcs/Event/EC_Masked_Type_Filter.i: * orbsvcs/orbsvcs/Event/EC_Masked_Type_Filter.cpp: This filter only accepts events whose type and/or source have a given value when a bitmask is applied to them. In short the filter checks that satisfy: (event.header.type & type_mask) == type_value && (event.header.source & source_mask) == source_value * orbsvcs/orbsvcs/Makefile: * orbsvcs/orbsvcs/Event/EC_Basic_Filter_Builder.cpp: The basic factory can create the new filters. * orbsvcs/orbsvcs/Event_Service_Constants.h: * orbsvcs/orbsvcs/Event_Utilities.h: * orbsvcs/orbsvcs/Event_Utilities.i: * orbsvcs/orbsvcs/Event_Utilities.cpp: Add support for the new filters into the ConsumerQoS factory. * orbsvcs/tests/Event/Basic/Makefile: * orbsvcs/tests/Event/Basic/Bitmask.cpp: * orbsvcs/tests/Event/Basic/run_test.pl: New test for the bitmask filters. * orbsvcs/tests/Event/Basic/Atomic_Reconnect.h: * orbsvcs/tests/Event/Basic/Atomic_Reconnect.cpp: * orbsvcs/tests/Event/Basic/Disconnect.h: * orbsvcs/tests/Event/Basic/Disconnect.cpp: * orbsvcs/tests/Event/Basic/MT_Disconnect.h: * orbsvcs/tests/Event/Basic/MT_Disconnect.cpp: * orbsvcs/tests/Event/Basic/Negation.h: * orbsvcs/tests/Event/Basic/Negation.cpp: * orbsvcs/tests/Event/Basic/Timeout.h: * orbsvcs/tests/Event/Basic/Timeout.cpp: * orbsvcs/tests/Event/Basic/Wildcard.h: * orbsvcs/tests/Event/Basic/Wildcard.cpp: * orbsvcs/tests/Event/Performance/Makefile: * orbsvcs/tests/Event/lib/Makefile: * orbsvcs/tests/Event/lib/Counting_Consumer.h: * orbsvcs/tests/Event/lib/Counting_Consumer.cpp: * orbsvcs/tests/Event/lib/Counting_Supplier.h: * orbsvcs/tests/Event/lib/Counting_Supplier.cpp: Refactor several tests, they all had some supplier or consumer that simply counted events. The shared class is now in the library. Mon Jan 31 20:21:24 2000 Douglas C. Schmidt * Added the following changes for Borland C++Builder 4: TAO/orbsvcs/orbsvcs/Makefile.bor: Added new files. TAO/tests/MProfile/test_i.cpp, test_i.h: Added definition of missing constructor, added required ACE_THROW_SPEC and removed reference to missing inline file. TAO/tests/Param_Test/client.bor: Added new file recursive_union.obj. Thanks to Christopher Kohlhoff for contributing these. Mon Jan 31 20:29:51 2000 Jeff Parsons * TAO_IDL/fe/idl.ll: * TAO_IDL/fe/idl.yy: * TAO_IDL/fe/lex.yy.cpp: * TAO_IDL/fe/lex.yy.cpp.diff: * TAO_IDL/fe/y.tab.h: * TAO_IDL/fe/y.tab.cpp: Added keyword 'fixed' to lexer and parser. * TAO_IDL/util/utl_scope.cpp: Modified lookup_by_name_local() to output an error if it sees any case variation of 'fixed'. The change to the lexer and parser will catch the use of 'fixed' as a type. This change will catch the use of 'fixed' as an identifier. Fixed types are not implemented in TAO, so we need to output an error message whenever the word is used in an IDL file. Thanks to J. Scott Evans for reporting this bug. Mon Jan 31 20:15:25 2000 Carlos O'Ryan * orbsvcs/orbsvcs/Event/EC_Concrete_Proxy_Set.h: * orbsvcs/orbsvcs/Event/EC_Basic_Factory.cpp: * orbsvcs/orbsvcs/Event/EC_Default_Factory.cpp: * orbsvcs/orbsvcs/Event/EC_Null_Factory.cpp: Had to expand several typedefs to workaround problems with SunCC 4.2 apparently the compiler cannot deal with nested typedefs inside templates very well. * orbsvcs/orbsvcs/Event/EC_Proxy_Collection.h: Fixed a comment. Mon Jan 31 20:13:58 2000 Carlos O'Ryan * orbsvcs/orbsvcs/Event/EC_Concrete_Proxy_Set.h: Added missing ACE_TYPENAME macros, only HP/aCC seems to detect the problem. * orbsvcs/orbsvcs/Event/EC_QOS_Info.h: * orbsvcs/orbsvcs/Event/EC_QOS_Info.i: Workaround a bug in the HP/aCC compiler, unless the copy constructor is explicitly defined the compiler crashes when trying to generate the code for it. Mon Jan 31 13:21:48 2000 Darrell Brunsch * orbsvcs/tests/ImplRepo/run_test.pl: The both_ir test was leaving servers running. Added shutdown commands for them at the end of the test. * tao/POA.cpp: Noticed that servers using the IMR were not shutting down properly on non-Win32 platforms. This happened because the code was grabbing locks twice, so it deadlocked when the default lock wasn't a thread mutex. It now calls the equivalent *_i methods. Mon Jan 31 14:54:14 2000 Irfan Pyarali * tests/Leader_Followers: The thread-per-connection TAO server has problems when shutting down since there is no portable way to wakeup a thread blocked in read(). Therefore, changed the server to use a thread-pool instead of a thread-per-connection approach. Mon Jan 31 11:14:21 2000 Carlos O'Ryan * orbsvcs/orbsvcs/orbsvcs.dsp: * orbsvcs/orbsvcs/orbsvcs_static.dsp: Updated the project files. Mon Jan 31 08:25:51 2000 Carlos O'Ryan * orbsvcs/orbsvcs/Event/EC_Concrete_Proxy_Set.i: Don't use typedefs inside templates with return values, it confuses g++ 2.7.X * orbsvcs/orbsvcs/Event/EC_ObserverStrategy.h: Some typedefs were protected, and thus not accessible for some classes. * orbsvcs/orbsvcs/Event/EC_SupplierAdmin.cpp: * orbsvcs/orbsvcs/Event/EC_Default_Factory.cpp: Move some template instantiations around. * orbsvcs/orbsvcs/Event/EC_Worker.h: * orbsvcs/orbsvcs/Event/EC_Worker.cpp: Try to work around old g++ bug. * orbsvcs/tests/EC_Throughput/ECT_Throughput.cpp: * orbsvcs/tests/EC_Throughput/Makefile: Remove unnecessary header file and updated dependencies. * orbsvcs/orbsvcs/Event/EC_Proxy_Collection.h: * orbsvcs/orbsvcs/Event/EC_Negation_Filter.h: Fix typos in the comments. Sun Jan 30 19:59:30 2000 Carlos O'Ryan * Changed the basic collection classes that keep both the consumer and supplier proxies. The new scheme uses the strategy pattern: the concrete collection (such as a list or RB-tree) is the strategy to store/retrieve objects, while different classes implement the serialization protocol (such as using copy-on-read, or delayed changes). This new implementation uses templates, because the code is generic for both the consumer and supplier proxies. It is possible that the same implementation can be used for other Event Services (such as Notification or CosEvents) * orbsvcs/orbsvcs/Event/EC_Proxy_Collection.h: * orbsvcs/orbsvcs/Event/EC_Proxy_Collection.i: * orbsvcs/orbsvcs/Event/EC_Proxy_Collection.cpp: Implement the different serialization protocols for the proxy collections. In this new implementation there are no iterators exposed to the rest of the EC, instead a for_each() method is implemented, each component that needs to iterate over a consumer or supplier collection implements a different Worker object for the task. * orbsvcs/orbsvcs/Event/EC_Concrete_Proxy_Set.h: * orbsvcs/orbsvcs/Event/EC_Concrete_Proxy_Set.i: * orbsvcs/orbsvcs/Event/EC_Concrete_Proxy_Set.cpp: Implement the concrete collections, currently we have two of them, one based on RB-trees and another based on an ordered list. * orbsvcs/orbsvcs/Event/EC_Worker.h: * orbsvcs/orbsvcs/Event/EC_Worker.i: * orbsvcs/orbsvcs/Event/EC_Worker.cpp: Defines the interfaces for the Worker objects. * orbsvcs/orbsvcs/Event/EC_Factory.h: * orbsvcs/orbsvcs/Event/EC_Event_Channel.h: * orbsvcs/orbsvcs/Event/EC_Event_Channel.i: Modified to create the new collection classes. Removed the methods to create consumer and supplier admin locks, because they have been superseeded by the collection classes. * orbsvcs/orbsvcs/Event/EC_Defaults.h: Added support for the new collection scheme, and removed old defaults for the previous style. * orbsvcs/orbsvcs/Event/EC_Default_Factory.h: * orbsvcs/orbsvcs/Event/EC_Default_Factory.i: * orbsvcs/orbsvcs/Event/EC_Default_Factory.cpp: Added support for the new proxy collections. The factory can create both list-based or RB-tree-based collections, decorated with any of the three basic algorithms (i.e. simple locking, aka immediate changes, delayed changes or copy-on-read) The file contains most of the template instantiations, must fix that. * docs/ec_options.html: The options in the default resource factory have changed, to handle the new collection types. * orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.h: * orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.i: * orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.cpp: * orbsvcs/orbsvcs/Event/EC_SupplierAdmin.h: * orbsvcs/orbsvcs/Event/EC_SupplierAdmin.i: * orbsvcs/orbsvcs/Event/EC_SupplierAdmin.cpp: * orbsvcs/orbsvcs/Event/EC_ObserverStrategy.h: * orbsvcs/orbsvcs/Event/EC_ObserverStrategy.i: * orbsvcs/orbsvcs/Event/EC_ObserverStrategy.cpp: * orbsvcs/orbsvcs/Event/EC_SupplierControl.h: * orbsvcs/orbsvcs/Event/EC_SupplierControl.cpp: * orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.h: * orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.i: * orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.cpp: * orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.h: * orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.i: * orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.cpp: * orbsvcs/orbsvcs/Event/EC_Supplier_Filter.h: * orbsvcs/orbsvcs/Event/EC_Supplier_Filter.i: * orbsvcs/orbsvcs/Event/EC_Supplier_Filter.cpp: * orbsvcs/orbsvcs/Event/EC_Trivial_Supplier_Filter.cpp: * orbsvcs/orbsvcs/Event/EC_Per_Supplier_Filter.h: * orbsvcs/orbsvcs/Event/EC_Per_Supplier_Filter.i: * orbsvcs/orbsvcs/Event/EC_Per_Supplier_Filter.cpp: Changed all the iterations in the Event Service implementation to use Workers instead of iterators. * orbsvcs/orbsvcs/Event/EC_Command.h: * orbsvcs/orbsvcs/Event/EC_Command.i: * orbsvcs/orbsvcs/Event/EC_Command.cpp: Added new Reconnected command for delayed reconnections. Normalized the name of the Shutdown command. * orbsvcs/orbsvcs/Event/EC_Basic_Factory.h: * orbsvcs/orbsvcs/Event/EC_Basic_Factory.cpp: * orbsvcs/orbsvcs/Event/EC_Null_Factory.h: * orbsvcs/orbsvcs/Event/EC_Null_Factory.cpp: Create the equivalent proxy collections corresponding to the old strategies. * docs/tutorials/Quoter/Event_Service/ec.conf: * orbsvcs/CosEvent_Service/svc.conf: * orbsvcs/Event_Service/svc.conf: * orbsvcs/examples/RtEC/Schedule/svc.conf: * orbsvcs/examples/RtEC/Simple/ec.conf: * orbsvcs/tests/EC_Mcast/svc.conf: * orbsvcs/tests/EC_Throughput/ec.conf: * orbsvcs/tests/EC_Throughput/ec.mt.conf: * orbsvcs/tests/Event/Basic/mt.svc.conf: * orbsvcs/tests/Event/Basic/observer.conf: * orbsvcs/tests/Event/Basic/sched.conf: * orbsvcs/tests/Event/Basic/svc.conf: * orbsvcs/tests/Event/Performance/ec.mt.conf: * orbsvcs/tests/Event/Performance/ec.st.conf: * orbsvcs/tests/Event/Performance/ec.rb_tree.conf: * orbsvcs/tests/Event/Performance/ec.list.conf: All the configuration files were updated to avoid any obsolete flags. * orbsvcs/orbsvcs/Event/EC_Dispatching_Task.h: * orbsvcs/orbsvcs/Event/EC_Dispatching_Task.i: * orbsvcs/orbsvcs/Event/EC_Dispatching_Task.cpp: * orbsvcs/orbsvcs/Event/EC_MT_Dispatching.cpp: * orbsvcs/orbsvcs/Event/EC_Priority_Dispatching.cpp: Normalized the name of the Shutdown_Command, the one to shutdown a task is now called Shutdown_Task. * orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set.cpp: * orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set.h: * orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set.i: * orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set_T.cpp: * orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set_T.h: * orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set_T.i: Removed, the EC_Proxy_Collection and EC_Concreate_Proxy_Set classes have superseeded this implementation. * orbsvcs/tests/Event/lib/Consumer.h: * orbsvcs/tests/Event/lib/Consumer.cpp: * orbsvcs/tests/Event/lib/Supplier.h: * orbsvcs/tests/Event/lib/Supplier.cpp: Optimized activation and de-activation of consumers and suppliers. Sun Jan 30 18:52:45 2000 Darrell Brunsch * orbsvcs/ImplRepo_Service/ImplRepo_i.cpp: * orbsvcs/ImplRepo_Service/ImplRepo_i.h: * orbsvcs/ImplRepo_Service/Options.cpp: * orbsvcs/ImplRepo_Service/Options.h: Added a timeout to the startup code so if the startup server does not respond within the timeout, then kill it and return an exception. The timeout period can be controlled by the -t option. Also replaced the ACE_Process code with the ACE_Process_Manager. This should automatically clean up the child processes when they exit. * orbsvcs/ImplRepo_Service/tao_imr_i.cpp: Prints out more information when a CannotActivate exception occurs. Sat Jan 29 12:57:53 2000 bala * TAO version 1.0.13 released. Fri Jan 28 20:11:23 2000 Carlos O'Ryan * tao/ORB_Core.cpp: When the last ORB is detroyed it must reset the first_orb_ variable in TAO_ORB_Table to 0. Thanks to Alex for reporting this bug and providing a fix. Fri Jan 28 18:35:15 2000 Jeff Parsons * tao/Request.cpp: Removed the check on work_pending() in method get_repsonse(), used in deferred synchronous requests. Recent changes to perform_work() and/or work_pending() have made it possible for work_pending() to return 0 even if the DII request has not completed (received its response). This was causing get_response() to return TRUE erroneously, and the resulting null message block pointer would eventually cause a client crash. Now get_response() returns TRUE only if the repsonse has been received. Fri Jan 28 17:27:19 2000 Jeff Parsons * TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp: Fix sent in by Alex Arulanthu that plugs a memory leak in generated code when decoding a sequence of length 0. Thanks to Jianfei Xu for reporting this. Fri Jan 28 14:05:32 2000 Jeff Parsons * performance-tests/Latency/st_client.cpp: Added 'x' to the string passed to get_opts(). It was in the switch statement and in the usage message, as it is in the other client types in this test suite. Fri Jan 28 12:51:26 2000 Irfan Pyarali * tests/Leader_Followers: Minor changes to make it work with different compilers. Thu Jan 27 20:25:37 2000 Irfan Pyarali * tao/Leader_Follower: wait_for_client_leader_to_complete: If a client thread (a thread making a remote request) is currently running the event loop, an event loop thread (a thread running ORB->run or ORB->perform_work) must wait for that client thread to complete. Additional state: keep track of whether a client thread the current leader. keeps track of whether server threads waiting for the client leader to complete. is the condition variable used by event loop threads waiting for the client leader to complete. TAO_LF_Server_Thread_Helper: Auto-pointer like class similar to TAO_LF_Client_Thread_Helper and TAO_LF_Leader_Thread_Helper that helps manage the leader follower object. This class helps with grabbing the lock and calling set_server_thread and grabbing the lock, calling reset_server_thread, and electing a new leader. set_server_thread: This method now calls wait_for_client_leader_to_complete if needed. Also it now has a relevant return value for timeouts and errors. set_leader_thread and reset_leader_thread: Added the setting and resetting . elect_new_leader: Election of new leader must first consider event loop threads before considering waiting clients. If server threads are waiting, we wake them all up. Note that it is necessary to give precedence to server threads over client threads since only one client runs at any given time; with a tp reactor, multiple server threads can execute simultaneously. * tao/ORB_Core.cpp (run): Use of TAO_LF_Server_Thread_Helper helped with abstracting and simplifying some of the leader follower code. In additions, timeouts are determined by examining the variable. Therefore, we don't need anymore. * tao/ORB (run and perform_work): The new ORB_Core::run simplified ORB::run and ORB::perform_work. * tao/Wait_Strategy.cpp (TAO_Wait_On_Reactor::wait, TAO_Exclusive_Wait_On_Leader_Follower::wait, and TAO_Muxed_Wait_On_Leader_Follower::wait): The while loop in TAO_Wait_On_Reactor::wait and TAO_Exclusive_Wait_On_Leader_Follower::wait was incorrect. This: *max_wait_time != ACE_Time_Value::zero should have been: *max_wait_time == ACE_Time_Value::zero While fixing this, I simplified the while loop making it easier to read and understand. Also fixed TAO_Muxed_Wait_On_Leader_Follower::wait which did not handle timeouts correctly. * tests/Leader_Followers: This is a test for server applications that have client threads (threads making remote calls) starting before server threads (threads running the event loop). The event loop threads should wait for the client threads that become leaders to give up leadership before continuing. * version_tests.dsw: * tests/Makefile (DIRS): * run_all_list.pm: Added new test Leader_Followers. Thu Jan 27 08:36:17 2000 Darrell Brunsch * orbsvcs/ImplRepo_Service/tao_imr_i.cpp: The help messages were still displaying "tao_ir" instead of "tao_imr". Also, if an Implementation Repository wasn't running, tao_imr wouldn't get a chance to parse the command line arguments - so it wouldn't even display the help messages unless an ImplRepo was running. Thanks to Dave Zumbro for reporting these. [Bugs 412, 413] Wed Jan 26 16:17:24 2000 Jeff Parsons * TAO_IDL/be/be_visitor_scope.cpp: * TAO_IDL/be/be_visitor_interface_fwd/interface_fwd_ch.cpp: * TAO_IDL/be/be_visitor_interface_fwd/interface_fwd_ci.cpp: * TAO_IDL/be/be_visitor_interface_fwd/cdr_op_ch.cpp: A fix for what I broke yesterday. At least we should now again be able to compile files where a forward declared interface is defined later in the file. * TAO_IDL/be/be_visitor_interface/cdr_op_ch.cpp: Cosmetic changes. * tests/IDL_Test/interface.idl: Commented out the forward declared interface that's not defined in the same file for now, until it is working on more platforms. Tue Jan 25 19:42:54 2000 Balachandran Natarajan * tao/UIOP_Profile.cpp (decode): * tao/IIOP_Profile.cpp : A problem when TAO clients were interacting with GIOP 1.2 servers. The profile received by the TAO client is parsed in decode (). In the code for IIOP_Profile, a check was made for a higher minor version but no action was taken. In the process, the version information that the IIOP_Profile class was holding had the minor version information of the received profile and not what the TAO client can send. So, changes have been made to check for the minor version number. If the minor version is less than or equal to the minor version that TAO supports, we save that information. If it is greater than the one we support, the {IIOP, UIOP}_Profile classes would highest minor version that we support. This information gets passed on through the invocation classes to the transport and then to the messaging classes. Thanks to Klemen Zagar for reporting this problem. Tue Jan 25 19:27:24 2000 Jeff Parsons * docs/releasenotes/index.html: Added entry for forward declared interface change to IDL compiler. Tue Jan 25 19:01:33 2000 Carlos O'Ryan * orbsvcs/orbsvcs/Event/EC_Event_Channel.cpp: Fixed shutdown problem for the Timer Module. * orbsvcs/orbsvcs/Event/EC_Per_Supplier_Filter.cpp: Fixed memory leak, if the supplier disconnects while some consumers are still attached it has to shutdown() its filter to clear the extra reference counts. * orbsvcs/tests/Event/Basic/Atomic_Reconnect.cpp: * orbsvcs/tests/Event/Basic/MT_Disconnect.cpp: * orbsvcs/tests/Event/Basic/Negation.cpp: * orbsvcs/tests/Event/Basic/Observer.cpp: * orbsvcs/tests/Event/lib/Driver.cpp: Fixed several memory leaks in the tests, to verify that the service is ok. * orbsvcs/tests/Event/Basic/run_test.pl: Increased allowed execution time for one of the tests. * orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set.cpp: Cosmetic fixes Tue Jan 25 18:51:42 2000 Jeff Parsons * tests/IDL_Test/interface.idl: * tests/IDL_Test/generic_object.idl: Added tests for new forward declared interface rule mentioned below and for generic objects used as parameters in a request. Tue Jan 25 18:19:49 2000 Jeff Parsons * TAO_IDL/tao_idl.cpp: * TAO_IDL/ast/ast_interface_fwd.cpp: * TAO_IDL/be/be_visitor_scope.cpp: * TAO_IDL/be/be_visitor_factory.cpp: * TAO_IDL/be/be_visitor_root/root.cpp: * TAO_IDL/be/be_visitor_interface_fwd/interface_fwd_ch.cpp: * TAO_IDL/be/be_visitor_interface_fwd.cpp: * TAO_IDL/be_include/be_visitor_interface_fwd.h: Modified files * TAO_IDL/be_include/be_visitor_interface_fwd/cdr_op_ch.h: * TAO_IDL/be/be_visitor_interface_fwd/cdr_op_ch.cpp: New files. Changes to support code generation and C++ compilation for IDL files containing a forward declared interface that is not defined in the same file. The spec had required that the definition be present, but the rule was recently relaxed in CORBA 2.3.1 (99-10-07). If the full definition is not in some generated .cpp file that is included in the build, the C++ compiler will produce a link error. This closes Bugzilla entry #401. Tue Jan 25 14:23:04 2000 Ossama Othman * docs/pluggable_protocols/index.html: Updated/corrected some URLs. Tue Jan 25 14:05:42 2000 Irfan Pyarali * tao/Leader_Follower.h (TAO_LF_Client_Thread_Helper and TAO_LF_Leader_Thread_Helper): Auto-pointer like classes that help manage the leader follower object. TAO_LF_Client_Thread_Helper helps with set_client_thread and reset_client_thread while TAO_LF_Leader_Thread_Helper helps with set_leader_thread and reset_leader_thread. * tao/Wait_Strategy.cpp (TAO_Muxed_Wait_On_Leader_Follower::wait and TAO_Exclusive_Wait_On_Leader_Follower::wait): We now use guards to make sure that the leader follower object has consistent information even when errors occur. Previously, there were many return and exceptional conditions where the leader follower object was left in an inconsistent state. Tue Jan 25 12:17:35 2000 Jeff Parsons * TAO_IDL/be/be_visitor_operation/rettype_vardecl_cs.cpp: Missed some cases in the previous checkin of this file. Tue Jan 25 10:38:31 2000 Pradeep Gore * orbsvcs/orbsvcs/Notify/Notify_SupplierAdmin_i.cpp: * orbsvcs/orbsvcs/Notify/Notify_ConsumerAdmin_i.cpp: Fixed "unreachable statement" warnings on kai. Tue Jan 25 02:07:58 2000 Nanbor Wang * examples/Simple/time/README: Added description on getting JACE.Misc.GetOpt. * examples/Simple/time/Time_Client.java: Modified the Java client so that it, like C++ client, can use command line args to determine ways of acquiring Time objref. This test now uses JACE.Misc.GetOpt (a complete JACE installation is not required.) Mon Jan 24 18:47:22 2000 Ossama Othman * docs/Options.html: Clarified what UID and GID in the documentation for the -ORBSetUID and -ORBSetGID options. Mon Jan 24 13:17:31 2000 Jeff Parsons * TAO_IDL/be/be_visitor_operation/rettype_vardecl_cs.cpp: Russell L. Carter reported a bug when the return type of an operation is CORBA::Object. It turns out that CORBA::TypeCode, interface, forward declared interface, valuetype, and forward declared valuetype needed the same fix. Sun Jan 23 18:15:32 2000 Krishnakumar Elakkara Pathayapura * docs/releasenotes/index.html: Updated the release notes for the Logging Service Sun Jan 23 14:09:30 2000 Ossama Othman * docs/Options.html: Added descriptions of the newly added "-ORBSetUID" and "-ORBSetGID" ORB options. * tao/ORB_Core.cpp (init): Added two new ORB options "-ORBSetUID" and "-ORBSetGID." These options can be used to the set the effective user and group IDs, respectively. This is useful when starting the ORB under the super-user but it is desired to run the ORB under different user and/or group IDs. A typical use would be to start a TAO daemon, under the 'nobody' user via System V style initialization scripts. Note that these options are only supported if the platform implements the setuid() and setgid() POSIX system calls. In general, it is a good idea to only run the ORB with super-user privileges when necessary, e.g. when performing benchmarking experiments, and when access to the real-time scheduling class is needed. If the ORB must be started via the super-user account, and the real-time scheduling class won't be used, than the ORB's effective user ID should at least be changed to an unprivileged one, such as 'nobody'. Sat Jan 22 21:08:07 2000 Nanbor Wang * orbsvcs/orbsvcs/orbsvcs.dsp: * orbsvcs/orbsvcs/orbsvcs_static.dsp: Renamed EC_SupplierFiltering.* to EC_Supplier_Filter.*. Sat Jan 22 18:25:51 2000 Carlos O'Ryan * orbsvcs/orbsvcs/Event/EC_Supplier_Filter.cpp: Fixed typo in the inline include file, only a problem in builds that disable inlining. Sat Jan 22 17:04:14 2000 Carlos O'Ryan * orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.h: * orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.cpp: * orbsvcs/orbsvcs/Event/EC_Event_Channel.h: * orbsvcs/orbsvcs/Event/EC_Event_Channel.cpp: * orbsvcs/orbsvcs/Event/EC_ProxyConsumer.h: * orbsvcs/orbsvcs/Event/EC_ProxyConsumer.cpp: * orbsvcs/orbsvcs/Event/EC_ProxySupplier.cpp: * orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set.cpp: * orbsvcs/orbsvcs/Event/EC_ProxySupplier.h: * orbsvcs/orbsvcs/Event/EC_SupplierAdmin.h: * orbsvcs/orbsvcs/Event/EC_SupplierAdmin.cpp: * orbsvcs/orbsvcs/Event/EC_Supplier_Filter.h: * orbsvcs/orbsvcs/Event/EC_Per_Supplier_Filter.h: * orbsvcs/orbsvcs/Event/EC_Per_Supplier_Filter.cpp: * orbsvcs/orbsvcs/Event/EC_Trivial_Supplier_Filter.h: * orbsvcs/orbsvcs/Event/EC_Trivial_Supplier_Filter.cpp: Added support for atomic reconnections. Before this change the event channel could loose messages when a consumer reconnected, because the implementation basically disconnected the consumer and then connected it again. There was an interval where the suppliers could push events, while the consumer was temporarily disconnected. The new implementation pushes a reconnected() message through the event channel, the consumer and supplier admins and finally to each proxy. There were no changes on the critical path, or regular connect/disconnect calls, so this only affect the performance of reconnections. This fixes bug #271 * orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.cpp: * orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.cpp: Another attempt at fixing this code to compile without CORBA Messaging support. It happens that ACE_HAS_CORBA_MESSAGING is always defined, but sometimes to 0 and other times to 1. * orbsvcs/tests/Event/Event.dsw: * orbsvcs/tests/Event/Basic/Atomic_Reconnect.cpp: * orbsvcs/tests/Event/Basic/Atomic_Reconnect.dsp: * orbsvcs/tests/Event/Basic/Atomic_Reconnect.h: * orbsvcs/tests/Event/Basic/Basic.dsw: * orbsvcs/tests/Event/Basic/Makefile: * orbsvcs/tests/Event/Basic/run_test.pl: New test to check that Atomic reconnects actually work. * orbsvcs/tests/Event/Basic/mt_disconnect.conf: * orbsvcs/tests/Event/Basic/mt.svc.conf: Renamed because it is also used in the Atomic_Reconnect test. Sat Jan 22 17:11:30 2000 Jeff Parsons * TAO_IDL/be/be_codegen.cpp: Brian Harris reported that when using the -GI option with the IDL compiler to generate implementation files for an IDL file 'foo', an included IDL file 'bar' caused the generation of #include "barI.h" in the implementation header file, when it should be #include "barC.h". However, since barC.h is indirectly included by the line #include "fooS.h", it does not need to be there at all. The block that generates this line in be_codegen.cpp is commented out for now, to see if some use case arises where it is needed. This closes out bug 410. Fri Jan 21 21:19:26 2000 Carlos O'Ryan * orbsvcs/orbsvcs/Makefile: Updated dependencies again, i forget LifeCycle last time. Fri Jan 21 16:46:36 2000 Carlos O'Ryan * orbsvcs/orbsvcs/Event_Utilities.cpp: * orbsvcs/orbsvcs/Event_Utilities.h: * orbsvcs/orbsvcs/Event_Utilities.i: The QoS factories now take an (optional) initializer function from the user to help with customized Event Channels that transmit a union as part of the EventPayload. * orbsvcs/orbsvcs/Event/EC_ProxyConsumer.h: * orbsvcs/orbsvcs/Event/EC_ProxyConsumer.cpp: Fixed some very obscure concurrency problems while disconnecting suppliers: if a supplier and a consumer where disconnecting at the same time there was a very small window for a crash. The race condition has been eliminated. * orbsvcs/tests/Event/Event.dsw: * orbsvcs/tests/Event/Basic/Basic.dsw: * orbsvcs/tests/Event/Basic/MT_Disconnect.cpp: * orbsvcs/tests/Event/Basic/MT_Disconnect.dsp: * orbsvcs/tests/Event/Basic/MT_Disconnect.h: * orbsvcs/tests/Event/Basic/Makefile: * orbsvcs/tests/Event/Basic/mt_disconnect.conf: * orbsvcs/tests/Event/Basic/run_test.pl: New test that performs concurrent supplier and consumer connect/disconnect calls. * orbsvcs/orbsvcs/Makefile: * orbsvcs/orbsvcs/Event/EC_Supplier_Filter.h: * orbsvcs/orbsvcs/Event/EC_Supplier_Filter.i: * orbsvcs/orbsvcs/Event/EC_Supplier_Filter.cpp: * orbsvcs/orbsvcs/Event/EC_SupplierFiltering.h: * orbsvcs/orbsvcs/Event/EC_SupplierFiltering.i: * orbsvcs/orbsvcs/Event/EC_SupplierFiltering.cpp: Renamed the EC_SupplierFiltering class to EC_Supplier_Filter, it is more consitent that way (next step: rename EC_Filter to EC_Consumer_Filter) * orbsvcs/orbsvcs/Event/EC_Basic_Factory.h: * orbsvcs/orbsvcs/Event/EC_Basic_Factory.cpp: * orbsvcs/orbsvcs/Event/EC_Default_Factory.h: * orbsvcs/orbsvcs/Event/EC_Default_Factory.cpp: * orbsvcs/orbsvcs/Event/EC_Null_Factory.h: * orbsvcs/orbsvcs/Event/EC_Null_Factory.cpp: * orbsvcs/orbsvcs/Event/EC_Per_Supplier_Filter.h: * orbsvcs/orbsvcs/Event/EC_Per_Supplier_Filter.cpp: * orbsvcs/orbsvcs/Event/EC_Supplier_Filter_Builder.h: * orbsvcs/orbsvcs/Event/EC_Trivial_Supplier_Filter.h: * orbsvcs/orbsvcs/Event/EC_Trivial_Supplier_Filter.cpp: Propagate the EC_SupplierFiltering name change. * orbsvcs/tests/Event_Latency/Event_Latency.cpp: The ORB initialized was not the default ORB used by the resource factory for the event service. Fri Jan 21 08:39:10 2000 Carlos O'Ryan * orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.cpp: * orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.cpp: More #ifdefs to compile when CORBA messaging is disabled. Thu Jan 20 09:07:47 2000 Carlos O'Ryan * orbsvcs/orbsvcs/Event/EC_ProxyConsumer.cpp: * orbsvcs/orbsvcs/Event/EC_ProxySupplier.cpp: Minimum CORBA does not provide the _non_existent() method, we disable the test in that case. Thu Jan 20 07:11:16 2000 David L. Levine * orbsvcs/orbsvcs/Makefile: updated dependencies, in a workspace that had Notify (and all of the other orbsvcs) built. Wed Jan 19 17:51:39 2000 Jeff Parsons * TAO_IDL/ast/ast_check.cpp: Added update of AST_Decl's filename pointer before outputting a 'forward declaration not defined' error. In certain cases, #xxxx statements in the IDL file cause the preprocessor to add # "" statements where is a repeat of the main file name. This would invalidate the filename pointer held deep down in a forward declared interface node. If a forward declared interface is found not to have a full definition, the error function that is called tries to use this filename pointer, causing a crash. Thanks to Hessel Idzenga for sending in the example file that uncovered this bug. Wed Jan 19 15:44:23 2000 Jeff Parsons * TAO_IDL/be/be_visitor_union/union_ci.cpp: * TAO_IDL/be/be_visitor_union/union_cs.cpp: Uninlined union destructor. In certain cases where the union in nested inside other structs and/or unions, Dec Unix picks up on the fact that the inner union's destructor is called before it is defined inline. Although he didn't report this bug, thanks to Hugh Arnold for sending in the example IDL file that rooted it out. Wed Jan 19 12:07:20 2000 Jeff Parsons * TAO_IDL/be/be_visitor_union_branch/cdr_op_ci.cpp: Fixed demarshaling for unions having members with multiple case labels. Thanks to Christopher Kohlhoff for reporting the bug. Tue Jan 18 20:45:36 2000 Irfan Pyarali * tests/Timed_Buffered_Oneways/run_test.pl: TAO/tests/Timed_Buffered_Oneways is timing out on our HPUX_aCC auto compile. Added extra timing information to narrow down this problem. Tue Jan 18 20:26:11 2000 Irfan Pyarali * tao/Transport_Mux_Strategy.cpp (TAO_Exclusive_TMS::dispatch_reply): The following change to this method was incorrect: Thu Jan 06 22:26:42 2000 Irfan Pyarali This method is not the correct place mark the transport as being available for reuse. If we do so here, another thread can start using the transport and reset the message state before we have had a chance of reading the reply. However, we still need to find a place to safely mark the transport as idle otherwise we will not end up reusing network connections. Note that this was not a problem for Oneway, Twoway, and Locate Request invocations since their destructors were setting the transport to idle anyway. The problem was for DII and Asynch invocations since their destructors were (correctly) not setting the transport to idle. Solution: First we revived which was there but commented out. idles the transport while is a no-op. Note that this is the opposite of how works. Second we make <~TAO_Asynch_Reply_Dispatcher> and <~TAO_DII_Deferred_Reply_Dispatcher> call . These reply dispatchers are told about their transports when has succeeded. Third we change Oneway, Twoway, and Locate Request invocations to call instead of in their destructors. This will prevent double idling of the transports when used with the TAO_Muxed_TMS strategy. * examples/Buffered_AMI/client.cpp (main): Checking was not a effective trick since the <(iterations % message_count) != 0> failed. Therefore, introduced a new variable to simplify this madness. Tue Jan 18 18:45:13 2000 Jeff Parsons * TAO_IDL/be/be_union.cpp: Increased the signed long default discriminator value by 1. It was being set to ACE_INT32_MIN, which is -2147483648. The literal constant is generated in the _default() method, and when MSVC sees the line this->disc_ = -2147483648; it outputs the warning "unary minus operator applied to unsigned type, result still unsigned". If the line is this->disc_ = -2147483647; we get no warning. Tue Jan 18 17:26:18 2000 Jeff Parsons * tao/deep_free.cpp: Fixed a memory leak in recursive unions. The fix also removes leaks in unions that contain anonymous sequences. Thanks to Lothar Werzinger for reporting this leak and sending in an example IDL file. * tao/DynStruct_i.cpp: Fixed some mismatched forms of ACE_CHECK that I added earlier today. Tue Jan 18 13:04:24 2000 Carlos O'Ryan * orbsvcs/orbsvcs/Event/EC_ProxyConsumer.cpp: * orbsvcs/orbsvcs/Event/EC_ProxySupplier.cpp: Fixed warnings on platforms without native C++ exception support. Tue Jan 18 12:08:00 2000 Jeff Parsons * tao/DynStruct_i.cpp: Added patches to from_any() and to_any() sent in by Philippe Merle .These patches (de)marshal the repository ID if the Any contains an exception. Tue Jan 18 11:37:31 2000 Irfan Pyarali * tests/MT_Client/client.cpp (parse_args): Only shutdown server when specified by the user. * tests/MT_Client/run_test.pl: Added explicit shutdown of the server. Tue Jan 18 08:56:20 2000 Carlos O'Ryan * orbsvcs/orbsvcs/Event/EC_ProxyConsumer.h: * orbsvcs/orbsvcs/Event/EC_ProxyConsumer.i: * orbsvcs/orbsvcs/Event/EC_ProxySupplier.cpp: * orbsvcs/orbsvcs/Event/EC_ProxySupplier.h: * orbsvcs/orbsvcs/Event/EC_ProxySupplier.i: Added a protected modified for the supplier (or consumer in the ProxySupplier case), this is useful for users that inherit from the ProxySupplier or ProxyConsumer and change the policies used to communicate with the peer. Notice that this changes should only be made once the connection is complete, i.e. after connect_push_XXX() has completed. Thanks to Dave Meyer for suggesting this. Mon Jan 17 22:13:05 2000 Darrell Brunsch * orbsvcs/ImplRepo_Service/tao_imr_i.cpp: * orbsvcs/ImplRepo_Service/tao_imr_i.h: Added a new command, ior to the tao_imr program. This command creates a simplified IOR by attaching a given name with the IMR's endpoint. This will only work with servers that register the simplified IORs with the IOR lookup table (Interoperable Naming Service stuff). * orbsvcs/tests/ImplRepo/run_test.pl: Change the nestea_ir test to use this scheme. * docs/implrepo/index.html: * docs/implrepo/tao_imr.html * docs/implrepo/usersguide.html Updated the documentation. Mon Jan 17 22:53:53 2000 Carlos O'Ryan * orbsvcs/orbsvcs/orbsvcs.dsp: * orbsvcs/orbsvcs/orbsvcs_static.dsp: Updated the NT project files. Tue Jan 18 20:44:02 2000 Carlos O'Ryan * tao/Object.cpp: The _non_existent() method must catch the CORBA::OBJECT_NOT_EXIST exception and return the appropriate value. Tue Jan 18 20:39:50 2000 Carlos O'Ryan * orbsvcs/orbsvcs/Makefile: * orbsvcs/orbsvcs/Event/EC_SupplierControl.h: * orbsvcs/orbsvcs/Event/EC_SupplierControl.i: * orbsvcs/orbsvcs/Event/EC_SupplierControl.cpp: * orbsvcs/orbsvcs/Event/EC_ConsumerControl.h: * orbsvcs/orbsvcs/Event/EC_ConsumerControl.i: * orbsvcs/orbsvcs/Event/EC_ConsumerControl.cpp: * orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.h: * orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.i: * orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.cpp: * orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.h: * orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.i: * orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.cpp: New components to the event channel that deal with stale consumer and/or supplier proxies. The first implementations simply poll the consumers and suppliers periodically, using the _non_existent() method to check if the object is there, to avoid dead-locks they use the timeout policies in the ORB to bound the time the spend polling. * orbsvcs/orbsvcs/Event/EC_Factory.h: * orbsvcs/orbsvcs/Event/EC_Null_Factory.h: * orbsvcs/orbsvcs/Event/EC_Null_Factory.cpp: * orbsvcs/orbsvcs/Event/EC_Basic_Factory.h: * orbsvcs/orbsvcs/Event/EC_Basic_Factory.cpp: * orbsvcs/orbsvcs/Event/EC_Default_Factory.h: * orbsvcs/orbsvcs/Event/EC_Default_Factory.i: * orbsvcs/orbsvcs/Event/EC_Default_Factory.cpp: The factory must create the new components now. Use CORBA::ORB_init() instead of TAO_ORB_Core_instance() to get to the ORB. This is standard and it can be easily configured using the ORBid. * docs/ec_options.html: Documented the new options in the TAO_EC_Default_Factory. * orbsvcs/orbsvcs/Event/EC_Defaults.h: New defaults for the consumer and supplier control policies. * orbsvcs/orbsvcs/Event/EC_Event_Channel.h: * orbsvcs/orbsvcs/Event/EC_Event_Channel.cpp: The event channel creates the consumer and supplier control policies (using the factory), and then activates them. * orbsvcs/orbsvcs/Event/EC_ProxyConsumer.h: * orbsvcs/orbsvcs/Event/EC_ProxyConsumer.cpp: * orbsvcs/orbsvcs/Event/EC_ProxySupplier.h: * orbsvcs/orbsvcs/Event/EC_ProxySupplier.cpp: Addded methods to invoke _non_existent() while holding the state lock, to avoid race conditions (as in one thread disconnecting a consumer while another thread tries to check if the consumer still exists). * orbsvcs/orbsvcs/Event/EC_SupplierAdmin.h: * orbsvcs/orbsvcs/Event/EC_SupplierAdmin.i: New accessor to use the collection lock. * orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set.h: Fixed nasty bug in the definition of the Disconnect command object, the typedef was wrong. * orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set_T.cpp: Removed old debug message. * orbsvcs/orbsvcs/Event/EC_Reactive_Timeout_Generator.cpp: Removed references to TAO_ORB_Core_instance(). Mon Jan 17 19:54:34 2000 Irfan Pyarali * tao/GIOP.cpp (write_request_header_lite): Made write_request_header_lite similar to write_request_header_std - both for checking the correctly and for dealing with the SYNC_WITH_SERVER option. Thanks to Bala for pointing this out. Mon Jan 17 15:49:25 2000 Jeff Parsons * TAO_IDL/be/be_visitor_field/field_ch.cpp: Fix to scoping of field name generation in header file when structs and/or unions are nested. Thanks to Hugh Arnold for reporting this bug and sending in the example file. * TAO_IDL/be/be_visitor_scope.cpp: Cosmetic changes. * tests/IDL_Test/union.idl: Added example IDL file mentioned above to test suite. * tests/IDL_Test/idl_test.dsp: Updated project settings to make custom build settings identical for all the IDL files in the test suite. Tue Jan 18 10:54:49 2000 Carlos O'Ryan * docs/Options.html: Documented the -ORBReactorRegistry option in the resource factory. Sun Jan 16 15:54:39 2000 Ossama Othman * tao/default_resource.cpp: Moved template instantiations related to ACE_LOCAL_MEMORY_POOL to ace/ACE.cpp. The idea is to place this set of template instantiations in a "common" area, since ace/Configuration.cpp also needs these templates instantations. Fri Jan 14 08:00:00 2000 Michael Kircher * tests/AMI/README, docs/releasenotes/index.html, examples/AMI/FL_Callback/README: Realized that IDL_HAS_VALUETYPE is defined by default in the TAO IDL compiler. Updated the documentation about AMI accordingly. Fri Jan 14 06:01:00 2000 Michael Kircher * TAO_IDL/be/be_interface.cpp, TAO_IDL/be_include/be_interface.h: Added a method named 'replacement' giving access to an interface node, which can serve as an replacement for the original. * TAO_IDL/be/be_interface_strategy.cpp, TAO_IDL/be/be_visitor_ami_pre_proc.cpp, TAO_IDL/be/be_visitor_interface/ami_interface_ch.cpp, TAO_IDL/be_include/be_interface_strategy.h: Enhanced the AMI preprocessor and the associated interface strategies to handle replacement nodes. This was necessary to pass information around for AMI code generation. The bug triggering this was a multiply defined typedef. Thanks to Bala for figuring this out. Thu Jan 13 20:11:55 2000 Irfan Pyarali * tao/ORB_Core.cpp (run): Generalized to work with . In , we only run the loop once. * tao/ORB.cpp (perform_work): The method now calls orb_core->run(), specifying that it is which prevents looping of the event loop. * tao/ORB.h (CORBA_ORB): There are now three versions of perform_work() and are similar to the run() methods. Tue Jan 11 21:27:51 2000 Irfan Pyarali * tao/Messaging.pidl (Messaging): Added two TAO specific SYNC options that control how buffering takes place in the ORB. (a) SYNC_EAGER_BUFFERING is the same as SYNC_NONE. These options will first queue the message in the buffering queue and then check the buffering constraints. If the constraints have been reached, the buffered messages will be delivered to the server. If the delivery of the messages to the server times out, the queued messages will remain queued until the buffering constraints are reached again. (b) SYNC_DELAYED_BUFFERING will first check the buffering queue. If the queue already has buffered messages, then this option will behave the same as the above option, i.e., buffer the message for later delivery. However, if the queue is empty, it will try to deliver the message immediately. If the message delivery to the server times out, the message will be queued for later delivery when the buffering constraints are reached. * tao: Added code to handle the new options and strategies related to the above change. The following files were effected: - Invocation.cpp - GIOP.cpp - MessagingC.cpp - MessagingC.h - ORB_Core.cpp - ORB_Core.h - ORB_Core.i - Stub.cpp - Sync_Strategies.cpp - Sync_Strategies.h - TAOC.cpp - TAOC.h * tao/GIOP.cpp (write_request_header_std): Comparison with majic numbers is evil ;-) Changed it to compare against the constants. * tao/Pluggable.h (TAO_Transport): Added friendship between the transport class and the sync classes. * tests/Timed_Buffered_Oneways/client.cpp (setup_buffering_constraints): Added the ability to either choose eager or delayed buffering. Tue Jan 11 17:25:16 2000 bala * TAO version 1.0.12 released. Tue Jan 11 16:46:40 2000 Balachandran Natarajan * tao/PollableS.cpp: * tao/PollableC.cpp: * tao/MessagingS.h: Fixed compile errors in AMI code. Tue Jan 11 11:20:27 2000 Irfan Pyarali * performance-tests/RTCorba/Oneways/Reliable/server.cpp (set_rt_mode): * performance-tests/RTCorba/Oneways/Reliable/client.cpp (set_rt_mode): If errors occur while setting the thread priority, print a message but don't abandon the test. Tue Jan 11 00:27:51 2000 Nanbor Wang * orbsvcs/Notify_Service/Notify_Service.dsp * orbsvcs/Notify_Service/Notify_Service.dsw * orbsvcs/orbsvcs/orbsvcs.dsp: * orbsvcs/orbsvcs/orbsvcs_static.dsp: Added Notify Service. * orbsvcs/orbsvcs/Notify/NotifyPublish_i.h: * orbsvcs/orbsvcs/Notify/NotifySubscribe_i.h: * orbsvcs/orbsvcs/Notify/Notify_Constraint_Interpreter.h: * orbsvcs/orbsvcs/Notify/Notify_Constraint_Visitors.h: * orbsvcs/orbsvcs/Notify/Notify_ConsumerAdmin_i.h: * orbsvcs/orbsvcs/Notify/Notify_Dispatcher.h: * orbsvcs/orbsvcs/Notify/Notify_EventChannelFactory_i.h: * orbsvcs/orbsvcs/Notify/Notify_EventChannel_i.h: * orbsvcs/orbsvcs/Notify/Notify_FilterAdmin_i.h: * orbsvcs/orbsvcs/Notify/Notify_FilterFactory_i.h: * orbsvcs/orbsvcs/Notify/Notify_Filter_i.h: * orbsvcs/orbsvcs/Notify/Notify_ProxyConsumer_i.h: * orbsvcs/orbsvcs/Notify/Notify_ProxyPushConsumer_i.h: * orbsvcs/orbsvcs/Notify/Notify_ProxyPushSupplier_i.h: * orbsvcs/orbsvcs/Notify/Notify_ProxySupplier_i.h: * orbsvcs/orbsvcs/Notify/Notify_QoSAdmin_i.h: * orbsvcs/orbsvcs/Notify/Notify_StructuredProxyPushConsumer_i.h: * orbsvcs/orbsvcs/Notify/Notify_StructuredProxyPushSupplier_i.h: * orbsvcs/orbsvcs/Notify/Notify_StructuredPushConsumer.h: * orbsvcs/orbsvcs/Notify/Notify_StructuredPushSupplier.h: * orbsvcs/orbsvcs/Notify/Notify_SupplierAdmin_i.h: Added TAO_ORBSVCS_Export. Thanks to Stephane Chatre for noticing these. Mon Jan 10 18:12:55 2000 Balachandran Natarajan * tao/PollableC.cpp: Fixed two instances of wrong usage of ACE_NEW_RETURN. Mon Jan 10 16:43:09 2000 Jeff Parsons * TAO_IDL/be/be_union_branch.cpp: * TAO_IDL/util/utl_scope.cpp: Lookup and code generation of case labels for unions in IDL did not correctly handle cases where the label names are scoped (for example, if the enum discriminator is defined in a different module than the union, the case label names may or may not be scoped). Thanks to Hessel Idzenga for reporting this bug. Mon Jan 10 12:53:08 2000 Jeff Parsons * tao/GIOP.cpp: * tao/GIOP_Server_Request.cpp: Since Reliable Oneways depend on a feature of GIOP 1.2, and GIOP 1.2 has not yet been fully implemented in TAO, a temporary workaround was added so that a TAO server will not confuse a twoway request from a GIOP 1.1 client with a oneway SYNC_WITH_SERVER request. When GIOP 1.2 is fully implemented in TAO, the TAO server can then check the version in the message header and behave accordingly. [bug 397] Mon Jan 10 11:51:33 2000 Jeff Parsons * TAO_IDL/be/be_visitor_exception/any_op_cs.cpp: * TAO_IDL/be/be_visitor_structure/any_op_cs.cpp: * TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp: Turned out to be the same change as below, but these were warnings from SunCC. Mon Jan 10 11:40:20 2000 Jeff Parsons * TAO_IDL/be/be_visitor_union/any_op_cs.cpp: Fix to generated code for >>=. We were getting a compile error from HPUX. Sat Jan 8 12:13:43 2000 Jeff Parsons * TAO_IDL/be/be_visitor_union_branch/cdr_op_ci.cpp: Fixed some uninitialized declarations. Reported by g++ David Levine. Sat Jan 8 03:30:00 2000 Michael Kircher * TAO/docs/releasenotes/index.html TAO/examples/AMI/FL_Callback/README, TAO/examples/Buffered_AMI/README, TAO/tests/AMI/README: Made the documentation of 'defines' necessary to compile AMI consistent across various documentations. Currently, you need to set TAO_HAS_CORBA_MESSAGING and TAO_HAS_AMI_CALLBACK to activate AMI code in the TAO library. (TAO_HAS_VALUETYPE is needed as well, but is defined by default) IDL_HAS_VALUETYPE needs to be defined for the TAO IDL compiler, this is due to the fact that AMI uses valuetypes for exception handling, though this might change in the future, because the spec might change in this area. Use -GC on the IDL compiler to generate AMI stubs. Thanks to "Russell L. Carter" for pointing this out. Fri Jan 7 15:22:38 2000 Ossama Othman * tao/ORB.cpp (destroy): Corrected behavior where ORB::destroy() would throw a BAD_INV_ORDER exception if the ORB was already shutdown, which does not agree with the CORBA specification. It is now possible to call ORB::destroy() after ORB::shutdown(). Thanks to Mogens Hansen for reporting this problem. Fri Jan 7 11:52:17 2000 Jeff Parsons * TAO_IDL/be/be_visitor_union_branch/cdr_op_ci.h: * TAO_IDL/be/be_visitor_union_branch/cdr_op_ci.cpp: Fixed bug where discriminator in a union with an explicit default case was not getting set after transmission. Thanks to Hugh Arnold for reporting this bug. Thu Jan 06 22:26:42 2000 Irfan Pyarali * tao: Minimum CORBA in TAO meant a minimum POA. This relationship was changed such that minimum CORBA does not have to mean a minimum POA. This will allow the user to use a minimum CORBA build of TAO with the full functionality of the POA. The default, however, remains the same, i.e., minimum CORBA enables a minimum POA. Added a new variable TAS_HAS_MINIMUM_POA to orbconf.h. TAS_HAS_MINIMUM_POA support is disabled by default if TAO is not configured for minimum CORBA. If TAO is configured for minimum CORBA, then TAS_HAS_MINIMUM_POA will be enabled by default. Also, TAO_HAS_MINIMUM_POA_MAPS is now influenced by the value of TAO_HAS_MINIMUM_POA rather than that of TAO_HAS_MINIMUM_CORBA if not explicitly set by the user. The following files were involved in this change: - POA.cpp - POA.h - POA.i - POA.pidl - POAC.cpp - POAC.h - POAC.i - POAManager.cpp - POAManager.h - POAManager.i - POAS.cpp - POAS.h - POAS.i - Object_Adapter.cpp - Object_Adapter.h - Object_Adapter.i Thanks to Erik Johannes for motivating this change. * tests/Timed_Buffered_Oneways: New test for oneways with buffering and timing constraints. The client sends is setup to send large requests to the server. The server is setup to take a long time to process these requests. The combination will cause flow control for the client. The timing constraints on the client ORB will prevent the client from blocking because of flow control. The request is queued up for later delivery once the flow control subsides. * tao/IIOP_Connect.cpp (handle_timeout): * tao/UIOP_Connect.cpp (handle_timeout): Added code to access the thread or ORB roundtrip timeout policies. This allows us to perform a timed send operation instead of a blocking one. We do not consider the object roundtrip timeout policy since we do not have access to it. * tao/ORB_Core.h (stubless_relative_roundtrip_timeout): Added a new method to access the RoundtripTimeoutPolicy policy set on the thread or on the ORB. In this method, we do not consider the stub since we do not have access to it. * tao/Sync_Strategies.cpp: Moved the TAO-specific SYNCH_FLUSH option from the Messaging::SyncScope policy and changed it to BUFFER_FLUSH as one of the buffering constraint modes in the TAO-specific BufferingConstraint policy. Since we now have BUFFER_FLUSH, we don't need BUFFER_NONE anymore since they both do the same thing. Also, we didn't need the TAO_Flush_Sync_Strategy anymore and the Buffered_Oneway example was changed to accommodate this change. * tao/Pluggable.cpp (send_buffered_messages): The return value of 0 is considered EOF. Therefore, changed the return values in the case of timeouts and empty queues to be 1. Also, fixed how timeouts are handled. (reset_message): The resetting of the queued messages was not correct. It was deleting excessively. This was fixed. Also, the resetting was decoupled from the queue so that it can be used with independent message blocks. * tao/Wait_Strategy.cpp: TAO_Exclusive_Wait_On_Leader_Follower::handle_input: The check for was conflicting with the ability to buffer asynchronous calls. If we mark the asynchronous call as a twoway call, then buffering cannot take place. If we mark it as a oneway call, then the check for fails. For now I have selected to disable the check. The long term fix is to separate out the two concerns (a) can the call be buffered and (b) are we expecting a response. * tao/Transport_Mux_Strategy.cpp (TAO_Exclusive_TMS::dispatch_reply): Once we receive our reply, we need to mark the transport as being available for reuse again. * tao: Renamed TAO_RelativeRoundtripTimeoutPolicy_i to TAO_RelativeRoundtripTimeoutPolicy. * tao/Messaging_Policy_i.cpp (set_time_value): Factored out common code in Invocation.cpp and IIOP_Connect.cpp. * tao/MessagingS.cpp: Added an overloaded relative_expiry(), which is a hacky TAO extension to reduce a call to CORBA::Environment::default_environment () since this method will never raise exceptions. Thu Jan 06 21:26:17 2000 Nanbor Wang * tests/Param_Test/param_test_i.cpp (test_unbounded_struct_sequence): Changed the explicit cast to [(unsigned int) 0] to unsigned literal [0u] to avoid MSVC fro whining. Wed Jan 5 15:54:38 2000 Jeff Parsons * tao/Any.cpp: Fix to new Any extractor to pointer to const Any, prompted by a SunCC 4.2 compile error. * TAO_IDL/be/be_visitor_union/any_op_cs.cpp: Removed a couple of unnecessary 'ACE_reinterpret_cast's in generated code for the new Any extractor to pointer to const Any. They were causing compile errors with Kai, SunCC and other compilers. * performance-tests/Latency/deferred_synch_client.dsp: Added missing paths for library linking. * performance-tests/RTCorba/Oneways/Reliable/client.dsp: * performance-tests/RTCorba/Oneways/Reliable/server.dsp: Put in the complete relative path to tao_idl.exe, as it is in all other projects with IDL files. Tue Jan 4 11:46:42 2000 Jeff Parsons * tao/Any.h: * tao/Any.cpp: Added >>= operators to extract to const CORBA::Any *&, as well as to const char *& and const wchar *&, as outlined in the CORBA 2.3.1 C++ mapping. * TAO_IDL/be/be_visitor_exception/any_op_ch.cpp: * TAO_IDL/be/be_visitor_exception/any_op_cs.cpp: * TAO_IDL/be/be_visitor_sequence/any_op_ch.cpp: * TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp: * TAO_IDL/be/be_visitor_structure/any_op_ch.cpp: * TAO_IDL/be/be_visitor_structure/any_op_cs.cpp: * TAO_IDL/be/be_visitor_union/any_op_ch.cpp: * TAO_IDL/be/be_visitor_union/any_op_cs.cpp: * TAO_IDL/be/be_visitor_union/any_op_cs.h: Added code generation for Any extraction operator to pointer to const whenever extraction to a pointer is called for. Left the former generated operators (same but without the 'const') for backward compatibility, but marked them as 'deprecated' in the generated header file. Also modified code for both operators to return a null pointer if the extraction fails. All this is in accordance with CORBA 2.3.1. * TAO_IDL/be/be_visitor_interface/any_op_cs.cpp: Modified Any extraction operator to return a null pointer if the extraction fails, for the reason given above. Tue Jan 04 07:30:04 2000 David L. Levine * TAO version 1.0.11 released. Tue Jan 4 00:34:57 2000 Nanbor Wang * orbsvcs/tests/Trading/Service_Type_Exporter.cpp: * orbsvcs/tests/Simple_Naming/client.cpp: * orbsvcs/LifeCycle_Service/Factory_Trader.cpp: Fixes for KAI that missed the last round and fixes that were needed after the last round. Mon Jan 3 20:33:11 2000 Balachandran Natarajan * orbsvcs/Trading_Service/Trading_Service.cpp: * orbsvcs/tests/Simple_Naming/client.cpp: * orbsvcs/tests/Trading/Service_Type_Exporter.cpp: * orbsvcs/tests/Trading/Offer_Exporter.cpp: Fixes for KAI that missed the last round and fixes that were needed after the last round. Mon Jan 3 15:08:47 2000 Balachandran Natarajan * orbsvcs/Trading_Service/Trading_Service.cpp: * orbsvcs/tests/Trading/Offer_Exporter.cpp: * orbsvcs/tests/Trading/Offer_Importer.cpp: * orbsvcs/tests/Trading/Service_Type_Exporter.cpp: * orbsvcs/tests/Simple_Naming/client.cpp: * orbsvcs//LifeCycle_Service/Factory_Trader.cpp: * orbsvcs/tests/Property/client.cpp: KAI needed fixes in these files to compile clean. There was a need to explicitly use an unsigned integer to avoid overloading amibiguity. Essentially the same fix as 'Mon Jan 03 10:55:36 2000 David L. Levine'. Mon Jan 3 14:45:22 2000 Nanbor Wang * tao/ORB.h: * tao/corbafwd.h: Removed compiler-specific alignment adjusting preprocessor directives for MSVC and BCB completely. Thanks to Christopher Kohlhoff for reporting this. Mon Jan 03 10:55:36 2000 David L. Levine * orbsvcs/Time_Service/Clerk_i.cpp (get_first_IOR): explicitly use unsigned 0 index for bindings_list array element to avoid overloading ambiguity on Irix and HP/UX. Mon Jan 03 10:46:31 2000 David L. Levine * orbsvcs/orbsvcs/Trader/Offer_Iterators.cpp (next_n): modified look index so that its comparison is > 0, not >= 0. Now that it's unsigned, it was causing a compiler warning. Sun Jan 02 10:48:59 2000 Michael Kircher * orbsvcs/orbsvcs/Trader/Offer_Iterators.cpp: Fixed a MSVC warning, complaining about an array operator. Sat Jan 01 09:18:59 2000 David L. Levine * orbsvcs/orbsvcs/Makefile: updated dependencies, including Notification Service files. Sat Jan 01 09:17:40 2000 David L. Levine * ChangeLog: moved to ChangeLog-99c.