summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2001-03-04 21:18:43 +0000
committercoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2001-03-04 21:18:43 +0000
commit2fa948cbd1a55a47e84552bb549a331451e1e160 (patch)
treefa998e76ed694c1805f290dc2a85b231a88a9f59
parentb17c129406f135eafb7c2458d34847bbf5245ad1 (diff)
downloadATCD-2fa948cbd1a55a47e84552bb549a331451e1e160.tar.gz
ChangeLogTag:Sun Mar 04 13:14:39 2001 Carlos O'Ryan <coryan@uci.edu>
-rw-r--r--TAO/ChangeLogs/ChangeLog-02a1194
-rw-r--r--TAO/tao/PP_Memory_Management.txt136
2 files changed, 737 insertions, 593 deletions
diff --git a/TAO/ChangeLogs/ChangeLog-02a b/TAO/ChangeLogs/ChangeLog-02a
index d7796a380e0..00abee32f53 100644
--- a/TAO/ChangeLogs/ChangeLog-02a
+++ b/TAO/ChangeLogs/ChangeLog-02a
@@ -1,169 +1,177 @@
+Sun Mar 04 13:14:39 2001 Carlos O'Ryan <coryan@uci.edu>
+
+ * tao/PP_Memory_Management.txt:
+ The memory management rules for TAO's pluggable protocol
+ framework were poorly documented. This file should capture
+ that, currently it describes a proposal more than the current
+ behavior.
+
Sun Mar 4 13:29:09 2001 Frank Hunleth <fhunleth@cs.wustl.edu>
- * tao/RTCORBA.pidl:
- * tao/IOP.pidl:
- * tao/RTPOA.pidl:
- Updated to CORBA v2.4.2 (February 2001) versions. Only comments
- were changed in IOP.pidl and RTPOA.pidl. In RTCORBA.pidl, all
- of the PolicyTypes were changed from TAO specific numbers to OMG
- assigned numbers. Also, the create_tcp_protocol_properties
- factor method was added to RTORB, so that users can now
- instantiate instances of TCPProtocolProperties.
-
- * tao/RT_ORB.{h,cpp} (create_tcp_protocol_properties):
- Added implementation to return a new TCPProtocolProperties
- instance.
-
- * tao/RTCORBAC.{cpp,h,i}:
- * tao/RTCORBAS.{cpp,h,i}:
- * tao/RTCORBAS_T.{cpp,h,i}:
- * tao/diffs/RTCORBAC.cpp.diff:
- * tao/diffs/RTCORBAC.h.diff:
- * tao/diffs/RTCORBAS.cpp.diff:
- * tao/diffs/RTCORBAS.h.diff:
- Updated all the files generated from RTCORBA.pidl.
+ * tao/RTCORBA.pidl:
+ * tao/IOP.pidl:
+ * tao/RTPOA.pidl:
+ Updated to CORBA v2.4.2 (February 2001) versions. Only comments
+ were changed in IOP.pidl and RTPOA.pidl. In RTCORBA.pidl, all
+ of the PolicyTypes were changed from TAO specific numbers to OMG
+ assigned numbers. Also, the create_tcp_protocol_properties
+ factor method was added to RTORB, so that users can now
+ instantiate instances of TCPProtocolProperties.
+
+ * tao/RT_ORB.{h,cpp} (create_tcp_protocol_properties):
+ Added implementation to return a new TCPProtocolProperties
+ instance.
+
+ * tao/RTCORBAC.{cpp,h,i}:
+ * tao/RTCORBAS.{cpp,h,i}:
+ * tao/RTCORBAS_T.{cpp,h,i}:
+ * tao/diffs/RTCORBAC.cpp.diff:
+ * tao/diffs/RTCORBAC.h.diff:
+ * tao/diffs/RTCORBAS.cpp.diff:
+ * tao/diffs/RTCORBAS.h.diff:
+ Updated all the files generated from RTCORBA.pidl.
Sun Mar 04 08:10:04 2001 Irfan Pyarali <irfan@cs.wustl.edu>
- * Changed the following files to correctly use the
- CORBA::Environment parameter when calling
- <ORB::resolve_initial_references>. Thanks to Ossama for
- pointing this out.
-
- Under examples/POA:
-
- - Adapter_Activator/server.cpp
- - DSI/Database_i.cpp
- - DSI/server.cpp
- - Default_Servant/File_i.cpp
- - Default_Servant/server.cpp
- - Explicit_Activation/server.cpp
- - FindPOA/FindPOA.cpp
- - Forwarding/server.cpp
- - Loader/Server_Manager.cpp
- - NewPOA/NewPOA.cpp
- - On_Demand_Activation/server.cpp
- - On_Demand_Loading/Server_Manager.cpp
- - Reference_Counted_Servant/server.cpp
- - RootPOA/RootPOA.cpp
- - TIE/server.cpp
-
- Under tests/POA:
-
- - Deactivation/Deactivation.cpp
- - Destruction/Destruction.cpp
- - Identity/Identity.cpp
- - Non_Servant_Upcalls/Non_Servant_Upcalls.cpp
- - wait_for_completion/wait_for_completion.cpp
+ * Changed the following files to correctly use the
+ CORBA::Environment parameter when calling
+ <ORB::resolve_initial_references>. Thanks to Ossama for
+ pointing this out.
+
+ Under examples/POA:
+
+ - Adapter_Activator/server.cpp
+ - DSI/Database_i.cpp
+ - DSI/server.cpp
+ - Default_Servant/File_i.cpp
+ - Default_Servant/server.cpp
+ - Explicit_Activation/server.cpp
+ - FindPOA/FindPOA.cpp
+ - Forwarding/server.cpp
+ - Loader/Server_Manager.cpp
+ - NewPOA/NewPOA.cpp
+ - On_Demand_Activation/server.cpp
+ - On_Demand_Loading/Server_Manager.cpp
+ - Reference_Counted_Servant/server.cpp
+ - RootPOA/RootPOA.cpp
+ - TIE/server.cpp
+
+ Under tests/POA:
+
+ - Deactivation/Deactivation.cpp
+ - Destruction/Destruction.cpp
+ - Identity/Identity.cpp
+ - Non_Servant_Upcalls/Non_Servant_Upcalls.cpp
+ - wait_for_completion/wait_for_completion.cpp
Sun Mar 04 10:11:07 2001 Ossama Othman <ossama@uci.edu>
- * tests/Smart_Proxies/Policy/server.cpp (shutdown):
+ * tests/Smart_Proxies/Policy/server.cpp (shutdown):
- Added missing ACE_TRY_ENV parameter to the ORB::shutdown() call.
+ Added missing ACE_TRY_ENV parameter to the ORB::shutdown() call.
- (main):
+ (main):
- Fixed ORB::run() call so that it uses the standard calling
- convention (void return).
+ Fixed ORB::run() call so that it uses the standard calling
+ convention (void return).
Sun Mar 04 10:02:18 2001 Ossama Othman <ossama@uci.edu>
- * tests/Smart_Proxies/Benchmark/server.cpp (box_prices, tickets):
+ * tests/Smart_Proxies/Benchmark/server.cpp (box_prices, tickets):
- Fixed "unused argument" warnings.
+ Fixed "unused argument" warnings.
- (shutdown):
+ (shutdown):
- Added missing ACE_TRY_ENV parameter to the ORB::shutdown() call.
+ Added missing ACE_TRY_ENV parameter to the ORB::shutdown() call.
- (main):
+ (main):
- Fixed ORB::run() call so that it uses the standard calling
- convention (void return).
+ Fixed ORB::run() call so that it uses the standard calling
+ convention (void return).
Sun Mar 04 09:44:18 2001 Ossama Othman <ossama@uci.edu>
- * tests/BiDirectional/client.cpp (main):
- * tests/BiDirectional/server.cpp (main):
- * tests/BiDirectional_NestedUpcall/client.cpp (main):
- * tests/BiDirectional_NestedUpcall/server.cpp (main):
- * tests/MProfile/server.cpp (main):
- * tests/MProfile_Forwarding/Manager.cpp (init):
- * tests/MProfile_Forwarding/server.cpp (main):
- * tests/QtTests/server.cpp (main):
- * tests/Smart_Proxies/Collocation/Coll_Tester.cpp (init):
- * tests/Xt_Stopwatch/server.cpp (main):
+ * tests/BiDirectional/client.cpp (main):
+ * tests/BiDirectional/server.cpp (main):
+ * tests/BiDirectional_NestedUpcall/client.cpp (main):
+ * tests/BiDirectional_NestedUpcall/server.cpp (main):
+ * tests/MProfile/server.cpp (main):
+ * tests/MProfile_Forwarding/Manager.cpp (init):
+ * tests/MProfile_Forwarding/server.cpp (main):
+ * tests/QtTests/server.cpp (main):
+ * tests/Smart_Proxies/Collocation/Coll_Tester.cpp (init):
+ * tests/Xt_Stopwatch/server.cpp (main):
- Added missing ACE_TRY_ENV parameter to
- resolve_initial_references() call, and the corresponding
- ACE_CHECK/ACE_CHECK_RETURN/ACE_TRY_CHECK macro.
+ Added missing ACE_TRY_ENV parameter to
+ resolve_initial_references() call, and the corresponding
+ ACE_CHECK/ACE_CHECK_RETURN/ACE_TRY_CHECK macro.
- * tests/Smart_Proxies/Benchmark/server.cpp (main):
- * tests/Smart_Proxies/Policy/server.cpp (main):
+ * tests/Smart_Proxies/Benchmark/server.cpp (main):
+ * tests/Smart_Proxies/Policy/server.cpp (main):
- Added missing ACE_TRY_CHECK after resolve_initial_references()
- call.
+ Added missing ACE_TRY_CHECK after resolve_initial_references()
+ call.
Sun Mar 04 09:12:40 2001 Ossama Othman <ossama@uci.edu>
- * tao/IFR_Client/InterfaceC.cpp:
+ * tao/IFR_Client/InterfaceC.cpp:
- Moved inclusion of the `tao/PortableInterceptor.h' header
- outside of the "TAO_HAS_INTERCEPTORS" protected block. This
- header must remain visible since it contains the
- "TAO_INTERCEPTOR" macros. Note that this won't cause problems
- when portable interceptor support is disabled since those macros
- are always visible, too.
+ Moved inclusion of the `tao/PortableInterceptor.h' header
+ outside of the "TAO_HAS_INTERCEPTORS" protected block. This
+ header must remain visible since it contains the
+ "TAO_INTERCEPTOR" macros. Note that this won't cause problems
+ when portable interceptor support is disabled since those macros
+ are always visible, too.
Sun Mar 4 11:06:25 2001 Frank Hunleth <fhunleth@cs.wustl.edu>
- * examples/PluggableUDP/README:
- * examples/PluggableUDP/DIOP/README:
- Added infomation about DIOP and PluggableUDP directories.
+ * examples/PluggableUDP/README:
+ * examples/PluggableUDP/DIOP/README:
+ Added infomation about DIOP and PluggableUDP directories.
- * examples/PluggableUDP/tests/README:
- Moved some information about the implementation of DIOP into the
- ../DIOP/README file.
+ * examples/PluggableUDP/tests/README:
+ Moved some information about the implementation of DIOP into the
+ ../DIOP/README file.
Sun Mar 4 10:03:59 2001 Frank Hunleth <fhunleth@cs.wustl.edu>
- * examples/PluggableUDP/tests/server.cpp:
- * examples/PluggableUDP/tests/client.cpp:
- Added missing ACE_TRY_ENV parameter to
- resolve_initial_references() per Ossama's request.
+ * examples/PluggableUDP/tests/server.cpp:
+ * examples/PluggableUDP/tests/client.cpp:
+ Added missing ACE_TRY_ENV parameter to
+ resolve_initial_references() per Ossama's request.
- * examples/PluggableUDP/tests/UDP_i.cpp:
- Fixed some compiler warnings under Linux.
+ * examples/PluggableUDP/tests/UDP_i.cpp:
+ Fixed some compiler warnings under Linux.
Sat Mar 03 23:32:29 2001 Ossama Othman <ossama@uci.edu>
- * tests/AMI_Timeouts/timeout_client.cpp (init):
- * tests/AMI_Timeouts/timeout_client.cpp (init, svc):
+ * tests/AMI_Timeouts/timeout_client.cpp (init):
+ * tests/AMI_Timeouts/timeout_client.cpp (init, svc):
- Renamed "init()" method to "initialize()." It conflicted with
- its base class "ACE_Task_Base::init()" method.
+ Renamed "init()" method to "initialize()." It conflicted with
+ its base class "ACE_Task_Base::init()" method.
Sat Mar 03 22:56:20 2001 Ossama Othman <ossama@uci.edu>
- * tests/AMI_Timeouts/client.cpp (main):
- * tests/AMI_Timeouts/timeout_client.cpp (svc, init):
- * tests/AMI_Timeouts/server.cpp (main):
+ * tests/AMI_Timeouts/client.cpp (main):
+ * tests/AMI_Timeouts/timeout_client.cpp (svc, init):
+ * tests/AMI_Timeouts/server.cpp (main):
- Fixed compile-time problems related to emulated exceptions.
- ACE_TRY_NEW_ENV declares a CORBA::Environment within a do-while
- loop scope, so that Environment is not available outside of the
- loop. However, an ACE_CHECK_RETURN is done outside of the
- ACE_TRY_NEW_ENV block. Use ACE_DECLARE_NEW_CORBA_ENV instead.
+ Fixed compile-time problems related to emulated exceptions.
+ ACE_TRY_NEW_ENV declares a CORBA::Environment within a do-while
+ loop scope, so that Environment is not available outside of the
+ loop. However, an ACE_CHECK_RETURN is done outside of the
+ ACE_TRY_NEW_ENV block. Use ACE_DECLARE_NEW_CORBA_ENV instead.
- Added missing ACE_TRY_ENV parameter to the
- resolve_initial_references() and shutdown() calls.
+ Added missing ACE_TRY_ENV parameter to the
+ resolve_initial_references() and shutdown() calls.
- Corrected spelling. "Caught," not "Catched!"
+ Corrected spelling. "Caught," not "Catched!"
- * tests/AMI_Timeouts/Makefile:
+ * tests/AMI_Timeouts/Makefile:
- Added missing dependencies.
+ Added missing dependencies.
Sat Mar 3 16:31:31 2001 Darrell Brunsch <brunsch@uci.edu>
@@ -194,336 +202,336 @@ Sat Mar 3 16:31:31 2001 Darrell Brunsch <brunsch@uci.edu>
Sat Mar 3 16:31:07 2001 Frank Hunleth <fhunleth@cs.wustl.edu>
- * examples/PluggableUDP/DIOP/DIOP_Acceptor.{cpp,i,h}:
- * examples/PluggableUDP/DIOP/DIOP_Connection_Handler.{cpp,i,h}:
- * examples/PluggableUDP/DIOP/DIOP_Connector.{cpp,h}:
- * examples/PluggableUDP/DIOP/DIOP_Endpoint.{cpp,i,h}:
- * examples/PluggableUDP/DIOP/DIOP_Factory.{cpp,h}:
- * examples/PluggableUDP/DIOP/DIOP_Profile.{cpp,i,h}:
- * examples/PluggableUDP/DIOP/DIOP_Transport.{cpp,i,h}:
- * examples/PluggableUDP/DIOP/diop_export.h:
- * examples/PluggableUDP/DIOP/Makefile:
- * examples/PluggableUDP/DIOP/Makefile.bor:
- * examples/PluggableUDP/DIOP/TAO_DIOP.dsp:
- * examples/PluggableUDP/DIOP/TAO_DIOP.dsw:
- * examples/PluggableUDP/DIOP/TAO_DIOP_Static.dsp:
- * examples/PluggableUDP/tests/Makefile:
- * examples/PluggableUDP/tests/Makefile.bor:
- * examples/PluggableUDP/tests/README:
- * examples/PluggableUDP/tests/UDP.dsw:
- * examples/PluggableUDP/tests/UDP.idl:
- * examples/PluggableUDP/tests/UDP_Client_i.{cpp,h}:
- * examples/PluggableUDP/tests/UDP_i.{cpp,h}:
- * examples/PluggableUDP/tests/client.cpp:
- * examples/PluggableUDP/tests/client.dsp:
- * examples/PluggableUDP/tests/run_test.pl:
- * examples/PluggableUDP/tests/server.cpp:
- * examples/PluggableUDP/tests/server.dsp:
- * examples/PluggableUDP/tests/svc.conf:
- Added UDP pluggable protocol and unit tests as a TAO example.
- This code was contributed by Michael Kircher
- <Michael.Kircher@mchp.siemens.de> and John Mackenzie
- <John.Mackenzie.extern@icn.siemens.de> as a TAO 1.1a
- pluggable protocol. The main changes from the original code
- include upgrading the pluggable protocol interfaces with the latest
- changes and moving the code from TAO/tao to a separate library.
+ * examples/PluggableUDP/DIOP/DIOP_Acceptor.{cpp,i,h}:
+ * examples/PluggableUDP/DIOP/DIOP_Connection_Handler.{cpp,i,h}:
+ * examples/PluggableUDP/DIOP/DIOP_Connector.{cpp,h}:
+ * examples/PluggableUDP/DIOP/DIOP_Endpoint.{cpp,i,h}:
+ * examples/PluggableUDP/DIOP/DIOP_Factory.{cpp,h}:
+ * examples/PluggableUDP/DIOP/DIOP_Profile.{cpp,i,h}:
+ * examples/PluggableUDP/DIOP/DIOP_Transport.{cpp,i,h}:
+ * examples/PluggableUDP/DIOP/diop_export.h:
+ * examples/PluggableUDP/DIOP/Makefile:
+ * examples/PluggableUDP/DIOP/Makefile.bor:
+ * examples/PluggableUDP/DIOP/TAO_DIOP.dsp:
+ * examples/PluggableUDP/DIOP/TAO_DIOP.dsw:
+ * examples/PluggableUDP/DIOP/TAO_DIOP_Static.dsp:
+ * examples/PluggableUDP/tests/Makefile:
+ * examples/PluggableUDP/tests/Makefile.bor:
+ * examples/PluggableUDP/tests/README:
+ * examples/PluggableUDP/tests/UDP.dsw:
+ * examples/PluggableUDP/tests/UDP.idl:
+ * examples/PluggableUDP/tests/UDP_Client_i.{cpp,h}:
+ * examples/PluggableUDP/tests/UDP_i.{cpp,h}:
+ * examples/PluggableUDP/tests/client.cpp:
+ * examples/PluggableUDP/tests/client.dsp:
+ * examples/PluggableUDP/tests/run_test.pl:
+ * examples/PluggableUDP/tests/server.cpp:
+ * examples/PluggableUDP/tests/server.dsp:
+ * examples/PluggableUDP/tests/svc.conf:
+ Added UDP pluggable protocol and unit tests as a TAO example.
+ This code was contributed by Michael Kircher
+ <Michael.Kircher@mchp.siemens.de> and John Mackenzie
+ <John.Mackenzie.extern@icn.siemens.de> as a TAO 1.1a
+ pluggable protocol. The main changes from the original code
+ include upgrading the pluggable protocol interfaces with the latest
+ changes and moving the code from TAO/tao to a separate library.
Sat Mar 03 15:28:34 2001 Ossama Othman <ossama@uci.edu>
- * tao/PortableServer/Object_Adapter.cpp (open):
+ * tao/PortableServer/Object_Adapter.cpp (open):
- Fixed broken memory management that I inadvertently introduced.
- This brings the code back to what it used to do before my
- change, but it uses a POA_Manager_var instead of an auto_ptr.
- Using the _var allows us to remove the auto_ptr template
- instantiation(s) for the POA_Manager. We technically shouldn't
- be using auto_ptrs on reference counted objects anyway, even
- though in this case there was no harm in doing so.
+ Fixed broken memory management that I inadvertently introduced.
+ This brings the code back to what it used to do before my
+ change, but it uses a POA_Manager_var instead of an auto_ptr.
+ Using the _var allows us to remove the auto_ptr template
+ instantiation(s) for the POA_Manager. We technically shouldn't
+ be using auto_ptrs on reference counted objects anyway, even
+ though in this case there was no harm in doing so.
- * tao/PortableServer/POA.cpp:
+ * tao/PortableServer/POA.cpp:
- Removed auto_ptr<TAO_POA> and auto_ptr<TAO_POA_Manager> template
- instantiations. They are no longer needed, thus reducing the
- POA footprint slightly.
+ Removed auto_ptr<TAO_POA> and auto_ptr<TAO_POA_Manager> template
+ instantiations. They are no longer needed, thus reducing the
+ POA footprint slightly.
- (create_POA_i):
+ (create_POA_i):
- Use a POA_var instead of an auto_ptr. The same reasoning from
- above applies here as well, i.e. auto_ptrs should not be used on
- reference counted objects.
+ Use a POA_var instead of an auto_ptr. The same reasoning from
+ above applies here as well, i.e. auto_ptrs should not be used on
+ reference counted objects.
Sat Mar 3 13:12:00 2001 Carlos O'Ryan <coryan@uci.edu>
- * tao/PortableServer/Object_Adapter.cpp:
- Fixed minor typo in the creation of the RootPOA
+ * tao/PortableServer/Object_Adapter.cpp:
+ Fixed minor typo in the creation of the RootPOA
Sat Mar 03 12:18:12 2001 Ossama Othman <ossama@uci.edu>
- * tests/Codec/client.cpp (verify_data):
+ * tests/Codec/client.cpp (verify_data):
- Cleaned up test output so that it is HTML friendly (i.e. no tab
- characters). The output in our HTML build logs was slightly
- confusing.
+ Cleaned up test output so that it is HTML friendly (i.e. no tab
+ characters). The output in our HTML build logs was slightly
+ confusing.
- * tests/Codec/README:
+ * tests/Codec/README:
- Updated expected test output.
+ Updated expected test output.
Sat Mar 03 11:46:36 2001 Ossama Othman <ossama@uci.edu>
- * tests/Portable_Interceptors/ForwardRequest/server.bor:
+ * tests/Portable_Interceptors/ForwardRequest/server.bor:
- Fixed typo in the rule that builds the ServerRequestInterceptor
- stub. The test should once again build with Borland C++.
+ Fixed typo in the rule that builds the ServerRequestInterceptor
+ stub. The test should once again build with Borland C++.
Sat Mar 03 11:14:57 2001 Ossama Othman <ossama@uci.edu>
- * tao/corbafwd.h:
+ * tao/corbafwd.h:
- Added the CORBA::_tc_{OctetSeq,StringSeq,WStringSeq} TypeCode
- declarations. They were previously renamed to get around
- problems with compilers that lack support for namespaces. The
- proper workaround is to actually put them in the CORBA namespace
- by using the forward declaration / typedef trick used in this
- file. This also fixes a problem with these TypeCodes not being
- available due to the renaming.
+ Added the CORBA::_tc_{OctetSeq,StringSeq,WStringSeq} TypeCode
+ declarations. They were previously renamed to get around
+ problems with compilers that lack support for namespaces. The
+ proper workaround is to actually put them in the CORBA namespace
+ by using the forward declaration / typedef trick used in this
+ file. This also fixes a problem with these TypeCodes not being
+ available due to the renaming.
- * tao/OctetSeqC.h:
- * tao/StringSeqC.h:
+ * tao/OctetSeqC.h:
+ * tao/StringSeqC.h:
- Removed the _tc_CORBA_{OctetSeq,StringSeq,WStringSeq}
- declarations. They were hacks to get around compilers that do
- not support namespaces. The proper TypeCodes are now declared
- in the CORBA namespace in `corbafwd.h'.
+ Removed the _tc_CORBA_{OctetSeq,StringSeq,WStringSeq}
+ declarations. They were hacks to get around compilers that do
+ not support namespaces. The proper TypeCodes are now declared
+ in the CORBA namespace in `corbafwd.h'.
- * tao/OctetSeqC.cpp:
- * tao/StringSeqC.cpp:
+ * tao/OctetSeqC.cpp:
+ * tao/StringSeqC.cpp:
- Use the proper CORBA::_tc_{OctetSeq,StringSeq,WStringSeq}
- TypeCodes rather than broken renamed ones described above. This
- addresses CORBA compliance and interoperability problems.
+ Use the proper CORBA::_tc_{OctetSeq,StringSeq,WStringSeq}
+ TypeCodes rather than broken renamed ones described above. This
+ addresses CORBA compliance and interoperability problems.
- * tao/diffs/OctetSeq.diff:
- * tao/diffs/StringSeq.diff:
+ * tao/diffs/OctetSeq.diff:
+ * tao/diffs/StringSeq.diff:
- Regenerated these diffs to include the above changes.
+ Regenerated these diffs to include the above changes.
Sat Mar 3 10:42:01 2001 Balachandran Natarajan <bala@cs.wustl.edu>
- * tests/Portable_Interceptors/ForwardRequest/Server_Request_Interceptor.cpp (forward_references):
+ * tests/Portable_Interceptors/ForwardRequest/Server_Request_Interceptor.cpp (forward_references):
- Fixed an exception specification.
+ Fixed an exception specification.
Sat Mar 03 02:10:00 2001 Ossama Othman <ossama@uci.edu>
- * tao/PortableServer/ServerRequestInfo.cpp:
+ * tao/PortableServer/ServerRequestInfo.cpp:
- Include "tao/PolicyC.h" to pull in declaration of
- CORBA::Policy::_nil(). This is particularly necessary for
- builds that disable compile-time support for CORBA Messaging
- since the Policy header doesn't get pulled in otherwise.
+ Include "tao/PolicyC.h" to pull in declaration of
+ CORBA::Policy::_nil(). This is particularly necessary for
+ builds that disable compile-time support for CORBA Messaging
+ since the Policy header doesn't get pulled in otherwise.
Sat Mar 3 00:16:46 2001 Ossama Othman <ossama@uci.edu>
- * tests/Portable_Interceptors/ForwardRequest/Makefile:
+ * tests/Portable_Interceptors/ForwardRequest/Makefile:
- Updated dependencies. Fixed one part of the build problems.
+ Updated dependencies. Fixed one part of the build problems.
- (TAO_IDLFLAGS):
+ (TAO_IDLFLAGS):
- Added missing IDL include path. `ServerRequestInterceptor.idl'
- includes "tao/PortableInterceptor.pidl". This is the other part
- of the build fix.
+ Added missing IDL include path. `ServerRequestInterceptor.idl'
+ includes "tao/PortableInterceptor.pidl". This is the other part
+ of the build fix.
- (realclean):
+ (realclean):
- Added missing clean rules for the `ServerRequestInterceptor*'
- stubs and skeletons.
+ Added missing clean rules for the `ServerRequestInterceptor*'
+ stubs and skeletons.
Fri Mar 02 23:54:41 2001 Ossama Othman <ossama@uci.edu>
- * tao/OctetSeqC.cpp:
- * tao/StringSeqC.cpp:
+ * tao/OctetSeqC.cpp:
+ * tao/StringSeqC.cpp:
- Use the TAO_NAMESPACE_{TYPE,DEFINE} preprocessor to macros
- correct compile-time errors on platforms that do not define the
- ACE_HAS_USING_KEYWORD. Fixes a "multiple definition"
- compile-time error on those platforms.
+ Use the TAO_NAMESPACE_{TYPE,DEFINE} preprocessor to macros
+ correct compile-time errors on platforms that do not define the
+ ACE_HAS_USING_KEYWORD. Fixes a "multiple definition"
+ compile-time error on those platforms.
- * tao/diffs/OctetSeq.diff:
- * tao/diffs/StringSeq.diff:
+ * tao/diffs/OctetSeq.diff:
+ * tao/diffs/StringSeq.diff:
- Regenerated these diffs so that they include the above changes.
+ Regenerated these diffs so that they include the above changes.
Fri Mar 2 20:28:27 Angelo Corsaro <angelo@hermes.doc.wustl.edu>
- * rules.tao.GNU:
- * orbsvcs/CosEvent_Service/Makefile:
- * orbsvcs/Dump_Schedule/Makefile:
- * orbsvcs/Event_Service/Makefile:
- * orbsvcs/LifeCycle_Service/Makefile:
- * orbsvcs/Logging_Service/Makefile:
- * orbsvcs/Notify_Service/Makefile:
- * orbsvcs/Scheduling_Service/Makefile:
- * orbsvcs/tests/AVStreams/benchmark/Makefile:
- * orbsvcs/tests/CosEvent/Basic/Makefile:
- * orbsvcs/tests/EC_Basic/Makefile:
- * orbsvcs/tests/EC_Custom_Marshal/Makefile:
- * orbsvcs/tests/EC_Multiple/Makefile:
- * orbsvcs/tests/EC_Throughput/Makefile:
- * orbsvcs/tests/Event/Basic/Makefile:
- * orbsvcs/tests/Event/Performance/Makefile:
- * orbsvcs/tests/Event_Latency/Makefile:
- * orbsvcs/tests/FaultTolerance/IOGR/Makefile:
- * orbsvcs/tests/FaultTolerance/IOGRManipulation/Makefile:
- * orbsvcs/tests/Sched/Makefile:
- * orbsvcs/tests/Trading/Makefile:
- * orbsvcs/tests/ior_corbaname/Makefile:
-
- Added the new macros:
- - TAO_DYNAMIC_LIBS
- - TAO_COS_NOTIFICATION_LIBS
- - TAO_RT_SCHED_LIBS
- - TAO_FAULT_TOLERANCE_LIBS
- - TAO_COS_TRADING_LIBS
-
- this macros expand to multiple libraries on QNX RTP,
- and this enable to work around a problem that is present
- currently in the QNX linker. For all othe platform these
- macro expand to the only library associated to the CORBA
- service. With this work aroun all the orbsvcs and almost
- all the orbsvcs test build.
+ * rules.tao.GNU:
+ * orbsvcs/CosEvent_Service/Makefile:
+ * orbsvcs/Dump_Schedule/Makefile:
+ * orbsvcs/Event_Service/Makefile:
+ * orbsvcs/LifeCycle_Service/Makefile:
+ * orbsvcs/Logging_Service/Makefile:
+ * orbsvcs/Notify_Service/Makefile:
+ * orbsvcs/Scheduling_Service/Makefile:
+ * orbsvcs/tests/AVStreams/benchmark/Makefile:
+ * orbsvcs/tests/CosEvent/Basic/Makefile:
+ * orbsvcs/tests/EC_Basic/Makefile:
+ * orbsvcs/tests/EC_Custom_Marshal/Makefile:
+ * orbsvcs/tests/EC_Multiple/Makefile:
+ * orbsvcs/tests/EC_Throughput/Makefile:
+ * orbsvcs/tests/Event/Basic/Makefile:
+ * orbsvcs/tests/Event/Performance/Makefile:
+ * orbsvcs/tests/Event_Latency/Makefile:
+ * orbsvcs/tests/FaultTolerance/IOGR/Makefile:
+ * orbsvcs/tests/FaultTolerance/IOGRManipulation/Makefile:
+ * orbsvcs/tests/Sched/Makefile:
+ * orbsvcs/tests/Trading/Makefile:
+ * orbsvcs/tests/ior_corbaname/Makefile:
+
+ Added the new macros:
+ - TAO_DYNAMIC_LIBS
+ - TAO_COS_NOTIFICATION_LIBS
+ - TAO_RT_SCHED_LIBS
+ - TAO_FAULT_TOLERANCE_LIBS
+ - TAO_COS_TRADING_LIBS
+
+ this macros expand to multiple libraries on QNX RTP,
+ and this enable to work around a problem that is present
+ currently in the QNX linker. For all othe platform these
+ macro expand to the only library associated to the CORBA
+ service. With this work aroun all the orbsvcs and almost
+ all the orbsvcs test build.
Fri Mar 2 16:16:45 2001 Ossama Othman <ossama@uci.edu>
- * tao/Object.cpp (operator>>):
+ * tao/Object.cpp (operator>>):
- Added "ERROR" to the error output so that our automated test
- suite will pick up the error message. Previously it was not
- detected. Clarified the error message a bit, as well.
+ Added "ERROR" to the error output so that our automated test
+ suite will pick up the error message. Previously it was not
+ detected. Clarified the error message a bit, as well.
Fri Mar 02 15:39:28 2001 Nanbor Wang <nanbor@cs.wustl.edu>
- * tao/orbconf.h: Since MEM_Stream is not supported if position
- independent pointers are not, we need to disable SHMIOP in that
- case.
+ * tao/orbconf.h: Since MEM_Stream is not supported if position
+ independent pointers are not, we need to disable SHMIOP in that
+ case.
Fri Mar 02 15:20:32 2001 Michael Kircher <Michael.Kircher@mchp.siemens.de>
* tests/AMI_Timeouts/timout_client.cpp:
- Fixed a missing ".in ()" on a var type.
+ Fixed a missing ".in ()" on a var type.
Fri Mar 2 11:46:40 2001 Ossama Othman <ossama@uci.edu>
- * tao/CodecFactory.cpp (create_codec):
+ * tao/CodecFactory.cpp (create_codec):
- Fixed a "statement is unreachable" warning.
+ Fixed a "statement is unreachable" warning.
- * tao/PortableInterceptorC.h (sync_scope):
+ * tao/PortableInterceptorC.h (sync_scope):
- Hide the ClientRequestInfo::sync_scope() method declaration if
- CORBA Messaging support isn't enabled.
+ Hide the ClientRequestInfo::sync_scope() method declaration if
+ CORBA Messaging support isn't enabled.
Fri Mar 2 11:37:43 2001 Ossama Othman <ossama@uci.edu>
- * tao/PortableInterceptor.cpp:
+ * tao/PortableInterceptor.cpp:
- Moved code within the "TAO_HAS_INTERCEPTORS" block. Fixes a
- compile-time error on platforms with request interceptors
- disabled.
+ Moved code within the "TAO_HAS_INTERCEPTORS" block. Fixes a
+ compile-time error on platforms with request interceptors
+ disabled.
Fri Mar 02 11:57:03 2001 Angelo Corsaro <corsaro@cs.wustl.edu>
- * tao/Connection_Handler.cpp (set_socket_option):
+ * tao/Connection_Handler.cpp (set_socket_option):
- Fixed mispelling in ACE_UNUSED_ARG, that was breaking
- QNX build.
+ Fixed mispelling in ACE_UNUSED_ARG, that was breaking
+ QNX build.
Fri Mar 02 09:32:33 2001 Ossama Othman <ossama@uci.edu>
- * tests/Portable_Interceptors/ForwardRequest/Server_Request_Interceptor.cpp (~Server_Request_Interceptor, destroy):
+ * tests/Portable_Interceptors/ForwardRequest/Server_Request_Interceptor.cpp (~Server_Request_Interceptor, destroy):
- Moved release of the forward object references from the
- destructor to the destroy() method. There was a strange problem
- with interdependent object life cycles. The forward object
- references wouldn't be released unless the server request
- interceptor was destroyed (destructor called), and the
- interceptor wouldn't be destroyed unless the object references
- were released! I'll need to examine this issue further. In the
- meantime, the ServerRequestInterceptor::destroy() change gets
- around the problem nicely, and fixes the memory leaks.
+ Moved release of the forward object references from the
+ destructor to the destroy() method. There was a strange problem
+ with interdependent object life cycles. The forward object
+ references wouldn't be released unless the server request
+ interceptor was destroyed (destructor called), and the
+ interceptor wouldn't be destroyed unless the object references
+ were released! I'll need to examine this issue further. In the
+ meantime, the ServerRequestInterceptor::destroy() change gets
+ around the problem nicely, and fixes the memory leaks.
- * tests/Portable_Interceptors/ForwardRequest/Server_ORBInitializer.cpp
- (post_init):
+ * tests/Portable_Interceptors/ForwardRequest/Server_ORBInitializer.cpp
+ (post_init):
- Use ACE_TRY_ENV instead of TAO_ENV_ARG_PARAMETER. There is no
- reason to use the latter when calling ORB supplied methods.
+ Use ACE_TRY_ENV instead of TAO_ENV_ARG_PARAMETER. There is no
+ reason to use the latter when calling ORB supplied methods.
- * tests/Portable_Interceptors/ForwardRequest/test_i.cpp:
+ * tests/Portable_Interceptors/ForwardRequest/test_i.cpp:
- Removed debugging message from the destructor.
+ Removed debugging message from the destructor.
Fri Mar 02 08:29:53 2001 Ossama Othman <ossama@uci.edu>
- * docs/index.html:
- * docs/minimumTAO.html:
- * docs/pluggable_protocols/index.html:
- * docs/releasenotes/index.html:
+ * docs/index.html:
+ * docs/minimumTAO.html:
+ * docs/pluggable_protocols/index.html:
+ * docs/releasenotes/index.html:
- Fixed references to Doug's web site. Just link to the local
- files. There is no need to go remote. Thanks to Darrell's
- "Fuzz" script for picking these up.
+ Fixed references to Doug's web site. Just link to the local
+ files. There is no need to go remote. Thanks to Darrell's
+ "Fuzz" script for picking these up.
Fri Mar 02 08:13:34 2001 Ossama Othman <ossama@uci.edu>
- * tests/Portable_Interceptors/ForwardRequest/Makefile
- (TAO_IDLFLAGS):
+ * tests/Portable_Interceptors/ForwardRequest/Makefile
+ (TAO_IDLFLAGS):
- Define the "CORBA3" preprocessor macro to make sure that the
- "local" keyword is enabled in the `tao/PortableInterceptor.pidl'
- file included by `ServerRequestInterceptor.idl'.
+ Define the "CORBA3" preprocessor macro to make sure that the
+ "local" keyword is enabled in the `tao/PortableInterceptor.pidl'
+ file included by `ServerRequestInterceptor.idl'.
Fri Mar 02 07:40:28 2001 Ossama Othman <ossama@uci.edu>
- * tests/Portable_Interceptors/ForwardRequest/ServerRequestInterceptor.idl:
+ * tests/Portable_Interceptors/ForwardRequest/ServerRequestInterceptor.idl:
- Added this missing file. I neglected to commit it with my
- previous set of changes for this test.
+ Added this missing file. I neglected to commit it with my
+ previous set of changes for this test.
- * tests/Portable_Interceptors/ForwardRequest/Makefile:
- * tests/Portable_Interceptors/ForwardRequest/server.bor:
+ * tests/Portable_Interceptors/ForwardRequest/Makefile:
+ * tests/Portable_Interceptors/ForwardRequest/server.bor:
- Added missing `ServerRequestInterceptor.idl' related rules to
- these Makefiles.
+ Added missing `ServerRequestInterceptor.idl' related rules to
+ these Makefiles.
- * tests/Portable_Interceptors/ForwardRequest/server.dsp:
+ * tests/Portable_Interceptors/ForwardRequest/server.dsp:
- Added missing header files to the header file list.
+ Added missing header files to the header file list.
Fri Mar 02 07:25:50 2001 Ossama Othman <ossama@uci.edu>
- * tao/ORB_Core.cpp (destroy_interceptors):
+ * tao/ORB_Core.cpp (destroy_interceptors):
- Fixed a compile-time warning that occured on native exception
- builds.
+ Fixed a compile-time warning that occured on native exception
+ builds.
Fri Mar 02 02:18:32 2001 Michael Kircher <Michael.Kircher@mchp.siemens.de>
- * tests/AMI_Timeouts/timeout_i.cpp:
- * tests/AMI_Timeouts/server.cpp:
- * tests/AMI_Timeouts/client.cpp:
- Fixed exception handling code.
+ * tests/AMI_Timeouts/timeout_i.cpp:
+ * tests/AMI_Timeouts/server.cpp:
+ * tests/AMI_Timeouts/client.cpp:
+ Fixed exception handling code.
Fri Mar 2 02:15:32 2001 Michael Kircher <Michael.Kircher@mchp.siemens.de>
- * tao/Connection_Handler.cpp:
- Fixed a wrong "#elsif".
+ * tao/Connection_Handler.cpp:
+ Fixed a wrong "#elsif".
Fri Mar 2 01:32:32 2001 Angelo Corsaro <corsaro@cs.wustl.edu>
- * tao/Connection_Handler.cpp (set_socket_option):
- Added ACE_UNUSED_ARG to avoid warning on those platform
- that lack SOCK_BUF_SIZE.
+ * tao/Connection_Handler.cpp (set_socket_option):
+ Added ACE_UNUSED_ARG to avoid warning on those platform
+ that lack SOCK_BUF_SIZE.
Fri Mar 2 07:51:04 2001 Johnny Willemsen <jwillemsen@remedy.nl>
@@ -582,22 +590,22 @@ Thu Mar 1 18:51:45 2001 Jeff Parsons <parsons@cs.wustl.edu>
Thu Mar 1 15:54:54 2001 Ossama Othman <ossama@uci.edu>
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Invocation_Interceptor.h:
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Invocation_Interceptor.cpp
- (destroy):
+ * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Invocation_Interceptor.h:
+ * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Invocation_Interceptor.cpp
+ (destroy):
- Added missing PortableInterceptor::Interceptor::destroy()
- implementation.
+ Added missing PortableInterceptor::Interceptor::destroy()
+ implementation.
Thu Mar 1 17:49:51 2001 Yamuna Krishnamurthy <yamuna@cs.wustl.edu>
- * orbsvcs/orbsvcs/AV/Protocol_Factory.cpp:
- * orbsvcs/orbsvcs/AV/FlowSpec_Entry.cpp:
- * orbsvcs/orbsvcs/AV/AV_Core.cpp:
- * orbsvcs/orbsvcs/AV/AVStreams_i.cpp:
+ * orbsvcs/orbsvcs/AV/Protocol_Factory.cpp:
+ * orbsvcs/orbsvcs/AV/FlowSpec_Entry.cpp:
+ * orbsvcs/orbsvcs/AV/AV_Core.cpp:
+ * orbsvcs/orbsvcs/AV/AVStreams_i.cpp:
- Removed unncessary ACE_DEBUGS and ensconced the others with
- TAO_debug_level checks. This should fix the tests from failing.
+ Removed unncessary ACE_DEBUGS and ensconced the others with
+ TAO_debug_level checks. This should fix the tests from failing.
Thu Mar 1 14:14:38 2001 Darrell Brunsch <brunsch@uci.edu>
@@ -670,234 +678,234 @@ Thu Mar 1 14:09:21 2001 Jeff Parsons <parsons@cs.wustl.edu>
Thu Mar 1 12:07:57 2001 Ossama Othman <ossama@uci.edu>
- * tao/ClientRequestInfo.cpp (get_request_policy):
+ * tao/ClientRequestInfo.cpp (get_request_policy):
- Fixed "unused argument" warning in the case where compile-time
- support for CORBA Messaging is disabled.
+ Fixed "unused argument" warning in the case where compile-time
+ support for CORBA Messaging is disabled.
- * tests/Makefile.bor (DIRS):
+ * tests/Makefile.bor (DIRS):
- Added the `Codec' test directory to list of directories to
- recurse into.
+ Added the `Codec' test directory to list of directories to
+ recurse into.
Thu Mar 1 11:10:58 2001 Ossama Othman <ossama@uci.edu>
- * tests/Makefile (DIRS):
+ * tests/Makefile (DIRS):
- Added the `Codec' test directory to list of directories to
- recurse into.
+ Added the `Codec' test directory to list of directories to
+ recurse into.
Thu Mar 1 10:51:14 2001 Ossama Othman <ossama@uci.edu>
- * tests/Codec/client.cpp:
+ * tests/Codec/client.cpp:
- Fixed compiler warnings.
+ Fixed compiler warnings.
- * tests/Codec/Makefile:
+ * tests/Codec/Makefile:
- Fixed typo, and updated dependencies.
+ Fixed typo, and updated dependencies.
Thu Mar 1 10:39:49 2001 Ossama Othman <ossama@uci.edu>
- * tao/ClientRequestInfo.inl (forward_reference):
+ * tao/ClientRequestInfo.inl (forward_reference):
- Fixed "unused argument" warning.
+ Fixed "unused argument" warning.
- * tao/ClientRequestInfo.cpp (get_request_policy):
+ * tao/ClientRequestInfo.cpp (get_request_policy):
- Only call CORBA::Object::_get_policy() if CORBA Messaging is
- enabled at compile-time. Fixes a compile-time error reported by
- Erik Johannes <ejohannes@oresis.com>.
+ Only call CORBA::Object::_get_policy() if CORBA Messaging is
+ enabled at compile-time. Fixes a compile-time error reported by
+ Erik Johannes <ejohannes@oresis.com>.
- * tao/PortableServer/Object_Adapter.cpp (dispatch):
+ * tao/PortableServer/Object_Adapter.cpp (dispatch):
- Cleaned up the interceptor related code slightly.
+ Cleaned up the interceptor related code slightly.
Thu Mar 01 12:18:00 2001 Michael Kircher <Michael.Kircher@mchp.siemens.de>
- * tests/AMI_Timeouts/client.cpp:
+ * tests/AMI_Timeouts/client.cpp:
- Added a ".in ()" when passing a _var as _ptr.
+ Added a ".in ()" when passing a _var as _ptr.
- * tests/AMI_Timeouts/Makefile:
+ * tests/AMI_Timeouts/Makefile:
- Added a missing space.
+ Added a missing space.
- * tests/AMI_Timeouts/timeout_i.cpp:
+ * tests/AMI_Timeouts/timeout_i.cpp:
- Removed the name of some parameters which were not used.
+ Removed the name of some parameters which were not used.
- This should fix several compile warnings and errors. Thanks to
- Bala for hooking up the AMI_Timeouts test and reporting this.
+ This should fix several compile warnings and errors. Thanks to
+ Bala for hooking up the AMI_Timeouts test and reporting this.
Thu Mar 01 09:38:28 2001 Ossama Othman <ossama@uci.edu>
- * tao/CodecFactory.h:
- * tao/CodecFactory.cpp:
+ * tao/CodecFactory.h:
+ * tao/CodecFactory.cpp:
- New files containing the implementation of the IOP::CodecFactory
- interface as defined by the adopted Portable Interceptor
- specification (ptc/00-08-05).
+ New files containing the implementation of the IOP::CodecFactory
+ interface as defined by the adopted Portable Interceptor
+ specification (ptc/00-08-05).
- * tao/Codec_ORBInitializer.h:
- * tao/Codec_ORBInitializer.cpp:
+ * tao/Codec_ORBInitializer.h:
+ * tao/Codec_ORBInitializer.cpp:
- ORBInitializer that registers the CodecFactory reference with
- the ORB.
+ ORBInitializer that registers the CodecFactory reference with
+ the ORB.
- * tao/CDR_Encaps_Codec.h:
- * tao/CDR_Encaps_Codec.cpp:
+ * tao/CDR_Encaps_Codec.h:
+ * tao/CDR_Encaps_Codec.cpp:
- New files containing the implementation of the IOP::Codec
- interface specifically for CDR encapsulations.
+ New files containing the implementation of the IOP::Codec
+ interface specifically for CDR encapsulations.
- * tao/ORB.cpp (init_orb_globals):
+ * tao/ORB.cpp (init_orb_globals):
- Register the CodecFactory ORBInitializer with the ORB.
+ Register the CodecFactory ORBInitializer with the ORB.
- * tao/ORBInitInfo.h:
- * tao/ORBInitInfo.cpp (codec_factory):
+ * tao/ORBInitInfo.h:
+ * tao/ORBInitInfo.cpp (codec_factory):
- Implemented this method, as required by the Portable Interceptor
- specification. Each ORBInitInfo method now retains its own
- copy of a CodecFactory. This was to done for ease of
- implementation.
+ Implemented this method, as required by the Portable Interceptor
+ specification. Each ORBInitInfo method now retains its own
+ copy of a CodecFactory. This was to done for ease of
+ implementation.
- * tao/OctetSeq.pidl:
- * tao/StringSeq.pidl:
+ * tao/OctetSeq.pidl:
+ * tao/StringSeq.pidl:
- Place the typedef in each of these PIDL files in the CORBA
- module. Previously they were incorrectly placed in the global
- namespace. [Bug 793]
+ Place the typedef in each of these PIDL files in the CORBA
+ module. Previously they were incorrectly placed in the global
+ namespace. [Bug 793]
- * tao/OctetSeqC.h:
- * tao/OctetSeqC.i:
- * tao/OctetSeqC.cpp:
- * tao/diffs/OctetSeq.diff
- * tao/StringSeqC.h:
- * tao/StringSeqC.i:
- * tao/StringSeqC.cpp:
- * tao/diffs/StringSeq.diff:
+ * tao/OctetSeqC.h:
+ * tao/OctetSeqC.i:
+ * tao/OctetSeqC.cpp:
+ * tao/diffs/OctetSeq.diff
+ * tao/StringSeqC.h:
+ * tao/StringSeqC.i:
+ * tao/StringSeqC.cpp:
+ * tao/diffs/StringSeq.diff:
- Regenerated these files against the updated PIDL files.
- [Bug 793]
+ Regenerated these files against the updated PIDL files.
+ [Bug 793]
- * tao/PortableInterceptor.pidl:
- * tao/IOP.pidl:
+ * tao/PortableInterceptor.pidl:
+ * tao/IOP.pidl:
- Updated with changes made in ptc/00-08-05. These changes
- include (1) moving Codec related interfaces to the IOP module,
- (2) addition of the Interceptor::destroy() method, and (3)
- addition of the IOP::TaggedComponentSeq type to the IOP module.
+ Updated with changes made in ptc/00-08-05. These changes
+ include (1) moving Codec related interfaces to the IOP module,
+ (2) addition of the Interceptor::destroy() method, and (3)
+ addition of the IOP::TaggedComponentSeq type to the IOP module.
- * tao/PortableInterceptorC.h:
- * tao/PortableInterceptorC.i:
- * tao/PortableInterceptorC.cpp:
- * tao/diffs/PortableInterceptor.diff:
- * tao/IOPC.h:
- * tao/IOPC.i:
- * tao/IOPC.cpp:
- * tao/diffs/IOP.diff:
+ * tao/PortableInterceptorC.h:
+ * tao/PortableInterceptorC.i:
+ * tao/PortableInterceptorC.cpp:
+ * tao/diffs/PortableInterceptor.diff:
+ * tao/IOPC.h:
+ * tao/IOPC.i:
+ * tao/IOPC.cpp:
+ * tao/diffs/IOP.diff:
- Regenerated these files against the updated PIDL files.
+ Regenerated these files against the updated PIDL files.
- * tao/ClientRequestInfo.inl:
- * tao/ClientRequestInfo.cpp:
- * tao/PortableServer/ServerRequestInfo.inl:
- * tao/PortableServer/ServerRequestInfo.cpp:
+ * tao/ClientRequestInfo.inl:
+ * tao/ClientRequestInfo.cpp:
+ * tao/PortableServer/ServerRequestInfo.inl:
+ * tao/PortableServer/ServerRequestInfo.cpp:
- Removed all reference to LOCATION_FORWARD_PERMANENT. It is
- currently not supported by the CORBA and Portable Interceptor
- specifications. This may change in the future as FT CORBA
- issues are resolved.
+ Removed all reference to LOCATION_FORWARD_PERMANENT. It is
+ currently not supported by the CORBA and Portable Interceptor
+ specifications. This may change in the future as FT CORBA
+ issues are resolved.
- Added all missing exception minor codes. The final adopted
- Portable Interceptor specification specifies what they are (the
- joint submission did not).
+ Added all missing exception minor codes. The final adopted
+ Portable Interceptor specification specifies what they are (the
+ joint submission did not).
- * tao/ClientRequestInfo.h:
+ * tao/ClientRequestInfo.h:
- Made target_ member a "_ptr." The TAO_ClientRequestInfo no
- longer needs to release the reference.
+ Made target_ member a "_ptr." The TAO_ClientRequestInfo no
+ longer needs to release the reference.
- * tao/ClientRequestInfo.cpp (TAO_ClientRequestInfo):
+ * tao/ClientRequestInfo.cpp (TAO_ClientRequestInfo):
- Do not duplicate the target object reference. There is no need
- to do so since it is guaranteed to be valid for the lifetime of
- the request. This removes a pair of locks from the critical
- path, thus improving performance. [Bug 795]
+ Do not duplicate the target object reference. There is no need
+ to do so since it is guaranteed to be valid for the lifetime of
+ the request. This removes a pair of locks from the critical
+ path, thus improving performance. [Bug 795]
+
+ * tao/ORB_Core.h:
+ * tao/ORB_Core.cpp (destroy_interceptors):
- * tao/ORB_Core.h:
- * tao/ORB_Core.cpp (destroy_interceptors):
+ New helper method that invokes Interceptor::destroy() on all
+ registered interceptors when ORB::destroy() is called.
- New helper method that invokes Interceptor::destroy() on all
- registered interceptors when ORB::destroy() is called.
+ (destroy):
+
+ Invoke the TAO_ORB_Core::destroy_interceptors() help method when
+ ORB::destroy() is called.
+
+ * tao/PortableInterceptor.i:
+ * tao/PortableInterceptor.cpp:
- (destroy):
+ Un-inlined the destructors. They're already no-ops, and
+ inlining them only serves to increase the footprint since
+ inlined destructor code is placed at all exit points.
- Invoke the TAO_ORB_Core::destroy_interceptors() help method when
- ORB::destroy() is called.
+ * tao/TAO.dsp:
+ * tao/TAO_Static.dsp:
+ * tao/Makefile:
+ * tao/Makefile.bor:
+
+ Added Codec related filenames to these files.
+
+ * tests/Codec/Codec.dsw:
+ * tests/Codec/Makefile:
+ * tests/Codec/Makefile.bor:
+ * tests/Codec/README:
+ * tests/Codec/client.bor:
+ * tests/Codec/client.cpp:
+ * tests/Codec/client.dsp:
+ * tests/Codec/run_test.pl:
+ * tests/Codec/test.idl:
+
+ New test that verifies the CodecFactory and CDR encapsulation
+ Codec objects are functioning properly.
+
+ * tests/README:
+
+ Added a description of the Codec test.
+
+ * tests/Portable_Interceptors/Benchmark/interceptors.cpp:
+ * tests/Portable_Interceptors/Benchmark/interceptors.h:
+ * tests/Portable_Interceptors/Dynamic/interceptors.cpp:
+ * tests/Portable_Interceptors/Dynamic/interceptors.h:
+ * tests/Portable_Interceptors/ForwardRequest/Client_Request_Interceptor.cpp:
+ * tests/Portable_Interceptors/ForwardRequest/Client_Request_Interceptor.h:
+ * tests/Portable_Interceptors/ForwardRequest/Server_ORBInitializer.cpp:
+ * tests/Portable_Interceptors/ForwardRequest/Server_ORBInitializer.h:
+ * tests/Portable_Interceptors/ForwardRequest/Server_Request_Interceptor.cpp:
+ * tests/Portable_Interceptors/ForwardRequest/Server_Request_Interceptor.h:
+ * tests/Portable_Interceptors/ForwardRequest/server.cpp:
+ * tests/Portable_Interceptors/ForwardRequest/server.dsp:
+ * tests/Portable_Interceptors/ForwardRequest/test_i.cpp:
+ * tests/Portable_Interceptors/ForwardRequest/test_i.h:
+ * tests/Portable_Interceptors/IORInterceptor/FOO_ClientRequestInterceptor.cpp:
+ * tests/Portable_Interceptors/IORInterceptor/FOO_ClientRequestInterceptor.h:
+ * tests/Portable_Interceptors/IORInterceptor/FOO_IORInterceptor.cpp:
+ * tests/Portable_Interceptors/IORInterceptor/FOO_IORInterceptor.h:
+ * tests/Portable_Interceptors/Service_Context_Manipulation/interceptors.cpp:
+ * tests/Portable_Interceptors/Service_Context_Manipulation/interceptors.h:
- * tao/PortableInterceptor.i:
- * tao/PortableInterceptor.cpp:
+ Updated to conform to the Portable Interceptor support updates.
- Un-inlined the destructors. They're already no-ops, and
- inlining them only serves to increase the footprint since
- inlined destructor code is placed at all exit points.
+ * docs/interceptors.html:
- * tao/TAO.dsp:
- * tao/TAO_Static.dsp:
- * tao/Makefile:
- * tao/Makefile.bor:
-
- Added Codec related filenames to these files.
-
- * tests/Codec/Codec.dsw:
- * tests/Codec/Makefile:
- * tests/Codec/Makefile.bor:
- * tests/Codec/README:
- * tests/Codec/client.bor:
- * tests/Codec/client.cpp:
- * tests/Codec/client.dsp:
- * tests/Codec/run_test.pl:
- * tests/Codec/test.idl:
-
- New test that verifies the CodecFactory and CDR encapsulation
- Codec objects are functioning properly.
-
- * tests/README:
-
- Added a description of the Codec test.
-
- * tests/Portable_Interceptors/Benchmark/interceptors.cpp:
- * tests/Portable_Interceptors/Benchmark/interceptors.h:
- * tests/Portable_Interceptors/Dynamic/interceptors.cpp:
- * tests/Portable_Interceptors/Dynamic/interceptors.h:
- * tests/Portable_Interceptors/ForwardRequest/Client_Request_Interceptor.cpp:
- * tests/Portable_Interceptors/ForwardRequest/Client_Request_Interceptor.h:
- * tests/Portable_Interceptors/ForwardRequest/Server_ORBInitializer.cpp:
- * tests/Portable_Interceptors/ForwardRequest/Server_ORBInitializer.h:
- * tests/Portable_Interceptors/ForwardRequest/Server_Request_Interceptor.cpp:
- * tests/Portable_Interceptors/ForwardRequest/Server_Request_Interceptor.h:
- * tests/Portable_Interceptors/ForwardRequest/server.cpp:
- * tests/Portable_Interceptors/ForwardRequest/server.dsp:
- * tests/Portable_Interceptors/ForwardRequest/test_i.cpp:
- * tests/Portable_Interceptors/ForwardRequest/test_i.h:
- * tests/Portable_Interceptors/IORInterceptor/FOO_ClientRequestInterceptor.cpp:
- * tests/Portable_Interceptors/IORInterceptor/FOO_ClientRequestInterceptor.h:
- * tests/Portable_Interceptors/IORInterceptor/FOO_IORInterceptor.cpp:
- * tests/Portable_Interceptors/IORInterceptor/FOO_IORInterceptor.h:
- * tests/Portable_Interceptors/Service_Context_Manipulation/interceptors.cpp:
- * tests/Portable_Interceptors/Service_Context_Manipulation/interceptors.h:
-
- Updated to conform to the Portable Interceptor support updates.
-
- * docs/interceptors.html:
-
- Updated current status of TAO's interceptor support
- (e.g. addition of the CodecFactory and CDR encapsulation Codec),
- and the reference list (URL for the adopted Portable Interceptor
- specification).
+ Updated current status of TAO's interceptor support
+ (e.g. addition of the CodecFactory and CDR encapsulation Codec),
+ and the reference list (URL for the adopted Portable Interceptor
+ specification).
Thu Mar 1 09:30:14 2001 Jeff Parsons <parsons@cs.wustl.edu>
@@ -913,52 +921,52 @@ Thu Mar 1 09:30:14 2001 Jeff Parsons <parsons@cs.wustl.edu>
Wed Feb 28 20:44:37 2001 Yamuna Krishnamurthy <yamuna@cs.wustl.edu>
- * orbsvcs/tests/AVStreams/Pluggable/ftp.cpp:
- * orbsvcs/tests/AVStreams/Latency/pong.h:
- * orbsvcs/tests/AVStreams/Latency/ping.h:
- * orbsvcs/tests/AVStreams/Latency/ping.cpp:
+ * orbsvcs/tests/AVStreams/Pluggable/ftp.cpp:
+ * orbsvcs/tests/AVStreams/Latency/pong.h:
+ * orbsvcs/tests/AVStreams/Latency/ping.h:
+ * orbsvcs/tests/AVStreams/Latency/ping.cpp:
- Fixed compile errors and warnings.
+ Fixed compile errors and warnings.
Wed Feb 28 15:43:54 2001 Balachandran Natarajan <bala@cs.wustl.edu>
- * tao/orbconf.h: Fixed a small mistake for the default case.
+ * tao/orbconf.h: Fixed a small mistake for the default case.
Wed Feb 28 15:23:46 2001 Balachandran Natarajan <bala@cs.wustl.edu>
- * docs/Options.html: Added documentation for the option
- "-ORBConnectionCacheLock".
+ * docs/Options.html: Added documentation for the option
+ "-ORBConnectionCacheLock".
Wed Feb 28 15:20:07 2001 Balachandran Natarajan <bala@cs.wustl.edu>
- * tao/orbconf.h: Added a check to notify the users that compiling
- RT CORBA without CORBA Messaging support is an error.
+ * tao/orbconf.h: Added a check to notify the users that compiling
+ RT CORBA without CORBA Messaging support is an error.
Wed Feb 28 14:23:41 2001 Balachandran Natarajan <bala@cs.wustl.edu>
- * tao/Tagged_Profile.h:
- * tao/Tagged_Profile.i:
- * tao/TAgged_Profile.cpp: This class held an instance of
- GIOP::IORAddressingInfo which in turn held an instance of
- TAO_String_Manager. This was a source of allocation and
- deallocation for every call along the critical path. We now rip
- open the GIOP::IORAddressingInfo structure and store the
- information that is just required like the <type_id> and the
- <IOP::TaggedProfile>.
+ * tao/Tagged_Profile.h:
+ * tao/Tagged_Profile.i:
+ * tao/TAgged_Profile.cpp: This class held an instance of
+ GIOP::IORAddressingInfo which in turn held an instance of
+ TAO_String_Manager. This was a source of allocation and
+ deallocation for every call along the critical path. We now rip
+ open the GIOP::IORAddressingInfo structure and store the
+ information that is just required like the <type_id> and the
+ <IOP::TaggedProfile>.
- * tao/GIOP_Message_Generator_Parser.cpp: Added code to do a lazy
- evaluation of GIOP::IORAddressingInfo structure that we may
- receive. These changes should fix the bugzilla bug #798.
+ * tao/GIOP_Message_Generator_Parser.cpp: Added code to do a lazy
+ evaluation of GIOP::IORAddressingInfo structure that we may
+ receive. These changes should fix the bugzilla bug #798.
Wed Feb 28 14:17:46 2001 Balachandran Natarajan <bala@cs.wustl.edu>
- * tests/Makefile: Added AMI_Timeouts to the list of directories.
+ * tests/Makefile: Added AMI_Timeouts to the list of directories.
Wed Feb 28 14:16:00 2001 Balachandran Natarajan <bala@cs.wustl.edu>
- * tao/Stub.h:
- * tao/Stub.cpp (TAO_Stub): Changed the signature of the method
- create_ior_info ().
+ * tao/Stub.h:
+ * tao/Stub.cpp (TAO_Stub): Changed the signature of the method
+ create_ior_info ().
Wed Feb 28 13:55:25 2001 Jeff Parsons <parsons@cs.wustl.edu>
@@ -994,12 +1002,12 @@ Web Feb 28 09:02:51 2001 Johnny Willemsen <jwillemsen@remedy.nl>
Tue Feb 27 17:45:55 2001 Yamuna Krishnamurthy <yamuna@cs.wustl.edu>
- * orbsvcs/tests/AVStreams/Latency/control.cpp:
- * orbsvcs/tests/AVStreams/Latency/pong.cpp:
- * orbsvcs/tests/AVStreams/Latency/ping.cpp:
- * orbsvcs/tests/AVStreams/Latency/run_test.pl:
+ * orbsvcs/tests/AVStreams/Latency/control.cpp:
+ * orbsvcs/tests/AVStreams/Latency/pong.cpp:
+ * orbsvcs/tests/AVStreams/Latency/ping.cpp:
+ * orbsvcs/tests/AVStreams/Latency/run_test.pl:
- Added script to run test.
+ Added script to run test.
Tue Feb 27 16:36:06 2001 Christopher Kohlhoff <chris@kohlhoff.com>
@@ -1012,22 +1020,22 @@ Tue Feb 27 16:36:06 2001 Christopher Kohlhoff <chris@kohlhoff.com>
Tue Feb 27 15:23:37 2001 Yamuna Krishnamurthy <yamuna@cs.wustl.edu>
- * orbsvcs/tests/AVStreams/Pluggable/server.cpp:
+ * orbsvcs/tests/AVStreams/Pluggable/server.cpp:
- Fixed unused args compile warnings.
+ Fixed unused args compile warnings.
Tue Feb 27 12:21:03 2001 Balachandran Natarajan <bala@cs.wustl.edu>
- * tao/IIOP_Connector.cpp: Moved the template instantiations to the
- top of the file as this was creating problem with SunCC
- 5.0. Thanks to Christian Mueffling <cvm@aiss.de> for reporting
- this.
+ * tao/IIOP_Connector.cpp: Moved the template instantiations to the
+ top of the file as this was creating problem with SunCC
+ 5.0. Thanks to Christian Mueffling <cvm@aiss.de> for reporting
+ this.
- * tao/UIOP_Connector.cpp:
- * tao/SHMIOP_Connector.cpp:
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connector.cpp:
- * orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Connector.cpp: Added the same
- fix for these protocols too.
+ * tao/UIOP_Connector.cpp:
+ * tao/SHMIOP_Connector.cpp:
+ * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connector.cpp:
+ * orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Connector.cpp: Added the same
+ fix for these protocols too.
Tue Feb 27 12:17:18 2001 Jeff Parsons <parsons@cs.wustl.edu>
@@ -1064,73 +1072,73 @@ Tue Feb 27 12:17:18 2001 Jeff Parsons <parsons@cs.wustl.edu>
Tue Feb 27 11:34:00 2001 Balachandran Natarajan <bala@cs.wustl.edu>
- * tao/Invocation.cpp:
- * tao/Invocation.h: Removed the instance of IOP::IOR that was
- created on the stack in every call. This structure had a
- TAO_String_Manager which allocates memory in the constructor and
- destroys memory in the destructor. This allocation and
- deallocation comes into play for every call even when it is not
- used.
-
- * tao/Stub.cpp:
- * tao/Stub.h:
- * tao/Stub.i: Added a pointer to the IOP::IOR in this class. When
- the client receives an exception LOC_NEEDS_ADDRESSING_MODE, the
- actual information is prepared only once and passed on to the
- invocation classes for every subsequent call.
+ * tao/Invocation.cpp:
+ * tao/Invocation.h: Removed the instance of IOP::IOR that was
+ created on the stack in every call. This structure had a
+ TAO_String_Manager which allocates memory in the constructor and
+ destroys memory in the destructor. This allocation and
+ deallocation comes into play for every call even when it is not
+ used.
+
+ * tao/Stub.cpp:
+ * tao/Stub.h:
+ * tao/Stub.i: Added a pointer to the IOP::IOR in this class. When
+ the client receives an exception LOC_NEEDS_ADDRESSING_MODE, the
+ actual information is prepared only once and passed on to the
+ invocation classes for every subsequent call.
Tue Feb 27 06:35:36 2001 Balachandran Natarajan <bala@cs.wustl.edu>
- * orbsvcs/orbsvcs/Trader/Constraint_Nodes.h (operands.): Fixed a
- typo that was generating quite a bit of errors.
+ * orbsvcs/orbsvcs/Trader/Constraint_Nodes.h (operands.): Fixed a
+ typo that was generating quite a bit of errors.
Tue Feb 27 04:32:00 2001 Yamuna Krishnamurthy <yamuna@cs.wustl.edu>
- * orbsvcs/tests/AVStreams/Multicast_Full_Profile/run_test.pl:
- * orbsvcs/tests/AVStreams/Multicast/run_test.pl:
- * orbsvcs/tests/AVStreams/Full_Profile/run_test.pl:
- * orbsvcs/tests/AVStreams/Pluggable/run_test.pl:
+ * orbsvcs/tests/AVStreams/Multicast_Full_Profile/run_test.pl:
+ * orbsvcs/tests/AVStreams/Multicast/run_test.pl:
+ * orbsvcs/tests/AVStreams/Full_Profile/run_test.pl:
+ * orbsvcs/tests/AVStreams/Pluggable/run_test.pl:
- Added scripts to run the AVStreams tests.
+ Added scripts to run the AVStreams tests.
Mon Feb 26 20:01:06 2001 Yamuna Krishnamurthy <yamuna@cs.wustl.edu>
- * orbsvcs/tests/AVStreams/Multicast_Full_Profile/ftp.cpp:
- * orbsvcs/tests/AVStreams/Multicast_Full_Profile/server.cpp:
- * orbsvcs/tests/AVStreams/Multicast/ftp.cpp:
- * orbsvcs/tests/AVStreams/Multicast/server.cpp:
- * orbsvcs/tests/AVStreams/Latency/control.cpp:
- * orbsvcs/tests/AVStreams/Full_Profile/ftp.cpp:
- * orbsvcs/tests/AVStreams/Full_Profile/server.cpp:
- * orbsvcs/tests/AVStreams/Pluggable/ftp.cpp:
- * orbsvcs/tests/AVStreams/Pluggable/server.cpp:
+ * orbsvcs/tests/AVStreams/Multicast_Full_Profile/ftp.cpp:
+ * orbsvcs/tests/AVStreams/Multicast_Full_Profile/server.cpp:
+ * orbsvcs/tests/AVStreams/Multicast/ftp.cpp:
+ * orbsvcs/tests/AVStreams/Multicast/server.cpp:
+ * orbsvcs/tests/AVStreams/Latency/control.cpp:
+ * orbsvcs/tests/AVStreams/Full_Profile/ftp.cpp:
+ * orbsvcs/tests/AVStreams/Full_Profile/server.cpp:
+ * orbsvcs/tests/AVStreams/Pluggable/ftp.cpp:
+ * orbsvcs/tests/AVStreams/Pluggable/server.cpp:
- Ensured clean termination of the processes.
+ Ensured clean termination of the processes.
- * orbsvcs/orbsvcs/AV/AVStreams_i.cpp:
- * orbsvcs/orbsvcs/AV/AVStreams_i.h:
+ * orbsvcs/orbsvcs/AV/AVStreams_i.cpp:
+ * orbsvcs/orbsvcs/AV/AVStreams_i.h:
- Corrected multicasting address formating to fix the Multicast
- and Multicast_Full_Profile tests.
+ Corrected multicasting address formating to fix the Multicast
+ and Multicast_Full_Profile tests.
- Also fixed the iteration through the reverse flow spec set in
- TAO_StreamEndPoint::start.
+ Also fixed the iteration through the reverse flow spec set in
+ TAO_StreamEndPoint::start.
- Thanks to Craig Rodrigues <crodrigu@bbn.com> for reporting these
- bugs.
+ Thanks to Craig Rodrigues <crodrigu@bbn.com> for reporting these
+ bugs.
Mon Feb 26 19:05:57 2001 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
- * orbsvcs/orbsvcs/Trader/Constraint_Interpreter.h:
- * orbsvcs/orbsvcs/Trader/Constraint_Nodes.h:
- * orbsvcs/orbsvcs/Trader/Constraint_Visitors.h:
- * orbsvcs/orbsvcs/Trader/Trader_Constraint_Visitors.h:
- Added some TAO_Trading_Export macros to export some classes from
- the Trading Service library. Thanks to Lothar Werzinger
- <werzinger.lothar@krones.de> for reporting this and submitting
- the patches.
+ * orbsvcs/orbsvcs/Trader/Constraint_Interpreter.h:
+ * orbsvcs/orbsvcs/Trader/Constraint_Nodes.h:
+ * orbsvcs/orbsvcs/Trader/Constraint_Visitors.h:
+ * orbsvcs/orbsvcs/Trader/Trader_Constraint_Visitors.h:
+ Added some TAO_Trading_Export macros to export some classes from
+ the Trading Service library. Thanks to Lothar Werzinger
+ <werzinger.lothar@krones.de> for reporting this and submitting
+ the patches.
Mon Feb 26 16:34:55 2001 Christopher Kohlhoff <chris@kohlhoff.com>
diff --git a/TAO/tao/PP_Memory_Management.txt b/TAO/tao/PP_Memory_Management.txt
new file mode 100644
index 00000000000..f9516139582
--- /dev/null
+++ b/TAO/tao/PP_Memory_Management.txt
@@ -0,0 +1,136 @@
+/**
+
+@page PP_Memory_Management Memory Management Rules for TAO's Pluggable Protocol Framework
+
+@section background Background
+
+ This document proposes a clearer set of memory management rules
+ for the pluggable protocols framework.
+ To understand this proposal some basic background on how does the
+ pluggable protocol framework works, and how each abstraction
+ relates to the other components in the ORB.
+
+ The pluggable protocol framework uses the Acceptor and Connector
+ patterns, unlike ACE, however, it must treat all of them
+ homogenously.
+ The basic abstraction in TAO's pluggable protocol framework is the
+ <CODE>TAO_Transport</CODE>,
+ an instance of this class represents a single connection, for
+ example, the IIOP plugin uses one instance of TAO_Transport for
+ each socket.
+ To integrate this abstraction with the ACE_Reactor framework,
+ all the protocols implemented so far use
+ specializations of the ACE_Svc_Handler class.
+ However, the original design considered the possibility of using
+ protocols without any ACE abstractions, though in practice this
+ hasn't happenned so far,
+ all changes to the framework should keep this possibility open.
+
+ This is the main source of memory management problems in the
+ pluggable protocol framework:
+ a single entity (a connection) is represented by two instances of
+ two separate classes. On one side the ORB uses an instance of the
+ TAO_Transport abstraction, on the other the Reactor uses an
+ instance of an ACE_Svc_Handler.
+
+ To complicate matters even further the ORB caches both passively
+ accepted and actively established connections.
+ The actively established connections are cached by the client-side
+ to minimize or amortize the cost of connection establishment.
+ The passively accepted connections are kept in the same cache
+ mainly to support bi-directional GIOP, however, they also allow us
+ to close both accepted and established idle connections using a
+ single component, this is useful when the ORB shutdowns, but it is
+ crucial in the implementation of connection recycling strategies,
+ where the total number of connections kept by the ORB must be
+ known.
+
+ The design must also support multithreaded clients and servers, in
+ both cases multiple threads may be using a connection
+ simultaneously, for example, multiple client threads can be
+ waiting for replys over the same connection, or multiple server
+ threads can be servicing requests received on the same connection,
+ or, if bi-dir GIOP is enabled, maybe a mix of both.
+
+ Some aspects of the GIOP protocol require special treatment of
+ connections with pending requests, both on the server and client
+ side.
+ On the server side connections that have pending requests cannot
+ be closed (section 15.5.1.1 in the CORBA/IIOP 2.4 specification),
+ therefore, the ORB needs to know how many requests are pending, at
+ all times.
+ Despite this, it is possible that the underlying connection is
+ broken, for example, because the client crashed. In such cases,
+ the ORB should be able to reclaim the OS resources, but the
+ TAO_Transport must remain valid until the upcall threads finish.
+ Similarly, the client side should be able to distinguish between
+ orderly and abortive disconnects, essentially the ORB needs to
+ know if a <CODE>CloseConnection</CODE> message has been received.
+
+ Finally we must never forget that the ORB can be used in
+ thread-per-connection mode. In this concurrency model there is no
+ reactor used to detect when the connection can accept more input,
+ though normally this is a global setting, it is possible for a
+ pluggable protocol to *always* work in thread-per-connection and
+ no other architecture.
+ Similarly, the ORB can be configured to wait for replys using
+ read() operations, instead of the more generic wait-on-reactor or
+ wait-on-leader-follower strategies.
+ Therefore, we cannot always rely on the Reactor framework to
+ perform all the memory management for us.
+
+@section requirements Requirements
+
+ To summarize, the TAO_Transport class should:
+
+ - Not be deleted until all threads using it is released by all the
+ threads using it.
+ - As many OS and ORB resources must be released when the ORB
+ detects that the connection has been terminated. For example,
+ the socket should be closed and the ACE_Svc_Handler, if any,
+ should be destroyed.
+ - Not be deleted until it is removed from the connection cache.
+ - Support a mechanism to proactively close the connection.
+ - Keep track of the number of pending requests in a connection.
+
+@section rules Memory Management Rules
+
+ Instances of TAO_Transport are reference counted,
+ this is a simple way to share it among the threads using it to
+ send or receive invocations, the cache, and the potential
+ connection handler using it.
+ However, the service handler should follow the standard rules for
+ the Reactor, i.e. the Reactor owns it, and is destroyed as soon as
+ the connection is closed.
+
+ The underlying connection can be closed by the remote peer,
+ in this case, either the Reactor or the thread blocked on
+ <CODE>read()</CODE> will detect the problem.
+ Following the normal conventions, the ACE_Svc_Handler would be
+ closed as soon as this is detected.
+ The corresponding TAO_Transport must be informed, otherwise it
+ could attempt to use a connection already closed.
+
+ Finally if the connection is proactively closed, the TAO_Transport
+ informs the ACE_Svc_Handler, at this point the ACE_Svc_Handler
+ commits suicide by removing itself from the reactor.
+ Notice that it must still callback the TAO_Transport in this
+ case.
+
+@section data Processing Incoming and Outgoing Data
+
+ The final aspect to consider is the processing of incoming and
+ outgoing data. We are still working on this problem, but the
+ current approach is more complex than it has to be.
+ The usual path is as follows: the Reactor signals (via
+ handle_input) that there is some data available in the socket.
+ The message is forwarded from the ACE_Svc_Handler to the
+ TAO_Transport, then to several helper classes in the pluggable
+ protocol framework. Eventually a method is invoked on the
+ TAO_Tranport to read the actual data, this forwards on the
+ ACE_Svc_Handler (again), and eventually returns.
+
+ A much simpler approach would be to read the data on the
+ handle_input() method itself, and forward the data up the stream.
+
+*/