Thu Dec 31 16:28:27 1998 Nanbor Wang * TAO_IDL/tao_idl.dsp: * TAO_IDL/tao_idl_static.dsp: Also write the executables to $ACE_ROOT/bin. * orbsvcs/Naming_Service/Naming_Service.dsp: Dependency update. * orbsvcs/orbsvcs/orbsvcs.dsp: Added Corlos' new files for Event Channel into the project. Cleaned up IDL configurations. * orbsvcs/orbsvcs/CosEvent/ConsumerAdmin_i.cpp: * orbsvcs/orbsvcs/CosEvent/ProxyPushConsumer_i.cpp: * orbsvcs/orbsvcs/CosEvent/ProxyPushSupplier_i.cpp: * orbsvcs/orbsvcs/CosEvent/SupplierAdmin_i.cpp: Don't need to specify relative path for header files reside in the same directory. * orbsvcs/orbsvcs/CosEvent/ProxyPushConsumer_i.h: * orbsvcs/orbsvcs/CosEvent/ConsumerAdmin_i.h: * orbsvcs/orbsvcs/CosEvent/EventChannel_i.h: * orbsvcs/orbsvcs/CosEvent/ProxyPushSupplier_i.h: * orbsvcs/orbsvcs/CosEvent/SupplierAdmin_i.h: Added TAO_ORBSVCS_export decls. Thu Dec 31 15:28:49 1998 Carlos O'Ryan * orbsvcs/orbsvcs/Event/EC_Event_Channel.h: * orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.h: * orbsvcs/orbsvcs/Event/EC_Dispatching.h: * orbsvcs/orbsvcs/Event/EC_ProxySupplier.h: * orbsvcs/orbsvcs/Event/EC_ProxyConsumer.h: * orbsvcs/orbsvcs/Event/EC_Filter.h: * orbsvcs/orbsvcs/Event/EC_Filter_Builder.h: I'm prototyping a new version of the real-time Event Channel, this version will be more efficient, more configurable and (hopefully) easier to maintain. This initial commit is just for backup purposes, it does not compile and it will suffer many changes before it is usable. Thu Dec 31 15:34:47 1998 Carlos O'Ryan * orbsvcs/orbsvcs/CosEvent/ProxyPushConsumer_i.cpp: Removed temporary reference called _env, it is not needed because we can use TAO_THROW_ENV() instead of TAO_THROW. Thu Dec 31 15:04:57 1998 Carlos O'Ryan * orbsvcs/orbsvcs/Makefile: Added the CosEC files to the Makefile; it compiles with both Sun/CC and egcs. * orbsvcs/orbsvcs/Time/Timer_Helper.cpp: Removed template instantiations, they are in orbsvcs-tmplinst.cpp already. 1998-12-31 Seth Widoff * orbsvcs/orbsvcs/Trader/Constraint_Visitors.cpp: Fixed another g++ error (assignment to an invalid narrower type). Thu Dec 31 13:20:17 1998 Vishal Kachroo * orbsvcs/orbsvcs/CosTimeBase.idl: Updated the comments to say that module TimeBase is a part of the TAO Time Service IDL. Thu Dec 31 12:39:24 1998 Vishal Kachroo * orbsvcs/Time_Service/Server_i.cpp (parse_args): Changed the _env to TAO_TRY_ENV. * orbsvcs/Time_Service/Server_i.cpp (parse_args): Changed the _env to TAO_TRY_ENV. Checked for invalid filename while reading from the IOR file. Removed the unreferenced variables. Thu Dec 31 12:28:31 1998 Vishal Kachroo * orbsvcs/orbsvcs/Time/Timer_Helper.cpp (handle_timeout): Changed the _env to TAO_TRY_ENV. * orbsvcs/orbsvcs/Time/TAO_TIO.cpp : Changed the _env to TAO_TRY_ENV. Removed the unreferenced variables as pointed out by IRIX compiler. Thanks to Carlos for this. Fixed warnings like statement unreachable. * orbsvcs/orbsvcs/Time/TAO_UTO.cpp : Changed the _env to TAO_TRY_ENV. * orbsvcs/orbsvcs/Time/TAO_Time_Service_Server.cpp : Changed the _env to TAO_TRY_ENV. Removed some unreferenced variables. * orbsvcs/orbsvcs/Time/TAO_Time_Service_Clerk.cpp :Changed the _env to TAO_TRY_ENV. Thu Dec 31 11:56:47 1998 Carlos O'Ryan * Fixed several errors and warnings detected by the IRIX compiler. * orbsvcs/orbsvcs/Time/TAO_Time_Service_Server.cpp: Removed unused variable. * TAO_IDL/be/be_visitor_typedef/typedef.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_argument/pre_docall_cs.cpp: * TAO_IDL/be/be_visitor_argument/post_upcall_ss.cpp: Removed unused variables and unreached statements. * orbsvcs/orbsvcs/Trader/Trader_Interfaces.h: * orbsvcs/orbsvcs/Trader/Constraint_Interpreter.h: Added several forward declarations. * orbsvcs/orbsvcs/Trader/Constraint_Visitors.cpp: Removed unnecesary template instantiations. 1998-12-31 Seth Widoff * orbsvcs/orbsvcs/Trader/Constraint_Visitors.{cpp,h}: Fixed a crazy #include problem with g++. Thu Dec 31 09:46:12 1998 Carlos O'Ryan * orbsvcs/orbsvcs/Makefile: Same change as Andy, but also added a dependency between TimeService.idl and CosTimeBase.idl; this is safer and should also work when running make -j 2 (or more). Thu Dec 31 09:27:05 1998 Aniruddha Gokhale * orbsvcs/orbsvcs/Makefile: TimeService.idl includes CosTimeBase.idl. However, the CosTimeBase.idl file was run through the IDL compiler after TimeService.idl which was causing errors because the generated files for TimeService were including the generated files for CosTimeBase. Thu Dec 31 03:54:05 1998 Kirthika Parameswaran * examples/POA/Loader/Servant_Activator.{h,cpp}: Added the ServantActivator_i implementation files which load the dll on creation and make object-servant associations on demand. * examples/POA/Loader/Servant_Locator.{h,cpp}: Added the ServantLocator_i implementation files which load the dll on creation and obtain and delete servants on demand per client request. * examples/POA/Loader/Server_Manager.{h,cpp}: Helper class implementation used by the server application. * examples/POA/Loader/server.cpp: The server application. * examples/POA/Loader/Makefile: Added to the repository. * examples/POA/Loader/README: Explains the example. * examples/POA/Loader/run_test.pl: Perl script for executing the example. * examples/POA/Generic_Servant/MyFooServant.cpp (supply_servant): Added this function. It will provide the appropriate servant depending on the ObjectId passed to it. * examples/POA/Generic_Servant/MyFooServant.cpp (destroy_servant): Added this function. It will terminate the servant. Thu Dec 31 00:11:32 1998 Irfan Pyarali * performance-tests/POA/Object_Creation_And_Registration/registration.cpp (main): Added timing stats for calls to servant_to_id(). * orbsvcs/tests/Time/Time.dsp: * orbsvcs/Time_Service/Time_Service.dsp: * orbsvcs/orbsvcs/orbsvcs.dsp: Added new Time Service files. * orbsvcs/orbsvcs/Runtime_Scheduler.cpp: Fixed comment typo. * performance-tests/POA/Object_Creation_And_Registration/registration.cpp (main): Added code to check the effectiveness of the hashing of servants. * tao/ORB_Core.cpp (root_poa): Reset the root_poa_reference_ when the root_poa_ is changed. * tao/Servant_Base.cpp (_default_POA): Changed implementation to use new ORB_Core::root_poa_reference() routine. * tao/ORB_Core.i (root_poa_reference): Added this method so that we do not have to create a new reference every time the POA reference is needed. Wed Dec 31 00:01:40 1998 Kirthika Parameswaran * examples/POA/On_Demand_Loading/server.cpp: Added support so that the program can break out of main () in case of any exception/error. * examples/POA/On_Demand_Loading/Servant_Manager.h: Made and as ACE_CString variables. Thanks to Irfan for suggesting it. * examples/POA/On_Demand_Loading/Servant_Manager.cpp (parse_string): Changed the method to implement simpler parsing using ACE_CString methods. * examples/POA/On_Demand_Loading/Servant_Manager.cpp (create_dll_object_id): Concatenation achieved very simply using ACE_CString variable. * examples/POA/On_Demand_Loading/README: Thanks to Doug for modifying it and making the concept used in the example much clearer. * examples/POA/On_Demand_Loading/server.cpp: Removed unnecessary TAO_TRY macros. Wed Dec 30 22:52:16 1998 David L. Levine * tao/Makefile: on ghs/VxWorks, removed -g suppression for POA.cpp build. It no longer seems to be necessary, and for some reason confused the make on SunOS 5.7 host. Wed Dec 30 20:45:42 1998 Pradeep Gore * orbsvcs/orbsvcs/CosEvent/EventChannel_i.h: * orbsvcs/orbsvcs/CosEvent/EventChannel_i.cpp: moved initialization from contructor to the init method. added a shutdown method. * orbsvcs/orbsvcs/CosEvent/ConsumerAdmin_i.h: * orbsvcs/orbsvcs/CosEvent/ConsumerAdmin_i.cpp: moved initialization from contructor to the init method. * orbsvcs/orbsvcs/CosEvent/SupplierAdmin_i.h: * orbsvcs/orbsvcs/CosEvent/SupplierAdmin_i.cpp: moved initialization from contructor to the init method. * orbsvcs/orbsvcs/CosEvent/ProxyPushConsumer_i.h: * orbsvcs/orbsvcs/CosEvent/ProxyPushConsumer_i.cpp: initialize the EventHeader using the SupplierQOS. added method. Wed Dec 30 19:17:44 1998 Kirthika Parameswaran * examples/POA/On_Demand_Loading/Server_Manager.{h,cpp}: Added these two files for the helper class Server_i used by the server application. * examples/POA/On_Demand_Loading/server.cpp: This file has been totally revamped and now uses the Server_i class object. * examples/POA/On_Demand_Loading/Makefile: Added an extra entry for Server_Manager used by the server program. Wed Dec 30 17:25:51 1998 Vishal Kachroo The following files have been added to the newly created Time directory under orbsvcs/orbsvcs * orbsvcs/orbsvcs/Time/TAO_TIO.cpp: This is the Time Interval Object. It represents a time interval and has operations to compare itself with a UTO or another TIO. It can also create a UTO from the value of it's time interval. * orbsvcs/orbsvcs/Time/TAO_TIO.h: This is the Time Interval Object. It represents a time interval and has operations to compare itself with a UTO or another TIO. It can also create a UTO from the value of it's time interval. * orbsvcs/orbsvcs/Time/TAO_UTO.cpp: Universal Time Object Implementation. This is an encapsulation of time. It provides the following operations on basic time. - Construction of a UTO from piece parts, and extraction of the parts from a UTO. The piece parts are the readonly attributes : time inaccuracy time displacement factor structure with all the above. - Comparison of time. - Conversion from relative to absolute time, and conversion to an interval (TIO). * orbsvcs/orbsvcs/Time/TAO_UTO.h: Class definition for TAO_UTO.cpp * orbsvcs/orbsvcs/Time//TAO_Time_Service_Server.cpp:The server Object implementation implements methods to retrieve current time as well as secure current time. The times are retrieved as UTOs. The object also allows creation of a TIO for a given time interval. The notion of time returned here is the local time of the system. * orbsvcs/orbsvcs/Time/TAO_Time_Service_Server.h: Class definition for TAO_Time_Service_Server.cpp * orbsvcs/orbsvcs/Time/TAO_Time_Service_Clerk.cpp: The clerk Object implementation implements methods to retrieve GLOBAL time as well as secure GLOBAL time. The times are retrieved as UTOs. The object also allows creation of a TIO for a given time interval. The notion of time returned here is the globally synchronized time. * orbsvcs/orbsvcs/Time/TAO_Time_Service_Clerk.h: Class definition for TAO_Time_Service_Clerk.cpp * orbsvcs/orbsvcs/Time/Timer_Helper.cpp: This is the helper class used by clerk to get globally syncronized time. This class is registered with the reactor that calls the handle_timeout () on this preiodically. The handle_timeout, in turn, gets time from the various servers in the network. It then updates the clerks notion of time. * orbsvcs/orbsvcs/Time/Timer_Helper.h: Class definition for the Timer_Helper.cpp Wed Dec 30 17:03:16 1998 Vishal Kachroo * orbsvcs/orbsvcs/TimeService.idl (CosTime): This is the IDL for the Time Service. It includes CosTimeBase.idl that defines the module TimeBase. This module has the IDL definition for the various data structures used in the time service. The separation of the two modules is required because the TimeBase module is being used in other TAO services. * orbsvcs/orbsvcs/Makefile : Updated the makefile to now make the newly added Time Service to TAO. This includes generating the IDL stubs in orbsvcs/orbsvcs and adding all the implementation objects in /orbsvcs/orbsvcs/Time to liborbsvcs. Wed Dec 30 17:37:19 1998 Carlos O'Ryan * orbsvcs/orbsvcs/Event/EC_Gateway_UDP.h: * orbsvcs/orbsvcs/Event/EC_Gateway_UDP.i: * orbsvcs/orbsvcs/Event/EC_Gateway_UDP.cpp: * orbsvcs/tests/EC_Mcast/EC_Mcast.h: * orbsvcs/tests/EC_Mcast/EC_Mcast.cpp: Detecting if a fragment comes from the current process is harder than I thought: just using the local address of the seding socket is not enough, because in some platform this address has the ipaddr set to 0 (the source address is chosen by the kernel after routing considerations). We use the ACE facilities to find the list of local ipaddresses to work around this problem. * orbsvcs/tests/EC_Mcast/EC_Mcast.cpp: Adjusted the timeout value for the UDP fragments, it was too low. * orbsvcs/tests/EC_Mcast/README: Updated the documentation. Wed Dec 30 16:43:35 1998 Vishal Kachroo The following files have been added to the newly created Time_Service directory under orbsvcs/ * orbsvcs/Time_Service/Server_i.h: This is the server driver program for the Time Service. It registers the TAO_Time_Service_Server with the orb and listens infinitely within orb.run () for invocations from the clerk. * orbsvcs/Time_Service/Server_i.cpp: This is the server driver program for the Time Service. It registers the TAO_Time_Service_Server with the orb and listens infinitely within orb.run () for invocations from the clerk. * orbsvcs/Time_Service/Clerk_i.h : This is the clerk driver program for the Time Service. It registers the TAO_Time_Service_Clerk with the orb. It also gets the IORs of the various time servers in the network and passes them to the TAO_Time_Service_Clerk. It listens for invocations from the clients. * orbsvcs/Time_Service/Clerk_i.cpp: This is the clerk driver program for the Time Service. It registers the TAO_Time_Service_Clerk with the orb. It also gets the IORs of the various time servers in the network and passes them to the TAO_Time_Service_Clerk. It listens for invocations from the clients. * orbsvcs/Time_Service/server.cpp: This is the server wrapper program. * orbsvcs/Time_Service/clerk.cpp: This is the clerk wrapper program. * orbsvcs/Time_Service/Makefile: This is the Makefile for this directory that generates the server and the clerk binaries. Wed Dec 30 16:26:51 1998 Vishal Kachroo The following files have been added to the newly created Time directory under orbsvcs/tests. * orbsvcs/tests/Time/Makefile: This makefile compiles just the client test in this directory. * orbsvcs/tests/Time/client.cpp: This is the client wrapper. * orbsvcs/tests/Time/Client_i.cpp: This class runs the various tests for the Time Service. It calls the TimeService clerk running on the same machine and asserts the correctness of the various operations. * orbsvcs/tests/Time/Client_i.h: This class runs the various tests for the Time Service. It calls the TimeService clerk running on the same machine and asserts the correctness of the various operations. Wed Dec 30 16:19:06 1998 Pradeep Gore * orbsvcs/tests/CosEC_Basic: * orbsvcs/tests/CosEC_Basic/README: * orbsvcs/tests/CosEC_Basic/CosECConsumer.cpp: * orbsvcs/tests/CosEC_Basic/CosECConsumer.h: * orbsvcs/tests/CosEC_Basic/CosECSupplier.cpp: * orbsvcs/tests/CosEC_Basic/CosECSupplier.h: * orbsvcs/tests/CosEC_Basic/CosEC_Basic.cpp: * orbsvcs/tests/CosEC_Basic/CosEC_Basic.h: * orbsvcs/tests/CosEC_Basic/Makefile: Added the following files for the CosEC test to orbsvcs 1998-12-30 Seth Widoff * orbsvcs/orbsvcs/Trader/Trader_T.{cpp,h}: Fixed a couple of syntax errors in my last change that were caught by NT, but missed by the more liberal SunCC compiler. Ack! Wed Dec 30 12:22:58 1998 Nanbor Wang * tao/Any.cpp (CORBA_Any): Removed sharing of in the copy constructor. It'd nice to have it but according to CORBA spec. Any always performs a deep_copy and owns the object. Wed Dec 30 02:47:46 1998 Irfan Pyarali * tao/IIOP_Object (Profile): Removed the 1001 different constructors and set() methods of the Profile class. We are now down to a bare minimum. Also did a complete make-over of this class to make it easier and simpler to use. The major change that improved the performance of creating new objects was moving the calls to get_host_name() and get_host_addr() out of the Profile class and into the ORB initialization routine. This way these functions are only called once per ORB and not once per object. In other words, these changes were necessary to improve the performance of object creation in TAO. The change is fairly simple in the sense that previously the IIOP::Profile was fed the endpoint INET_Addr on creation by the ORB_Core and the Profile figured out the host and port information from the INET_Addr. The figuring out part was through the very expensive gethostby{name,addr} routine. The change was to move the expensive gethostby{name,addr} routine out of the Profile and into the ORB_Core and simply provide the cached host and port information to the IIOP::Profile when it is constructed. * tao/Servant_Base.cpp (_create_stub): Removed the creation of an extra STUB_Object. * tao/params.h (TAO_ORB_Parameters): Did a complete make-over of this class to make it easier and simpler to use (memory management issues are now much simpler). * tao/ORB_Core.h (TAO_Resource_Factory): Removed the from the ORB_Core. It was already in the orb parameters. * tao/Active_Object_Map.i (TAO_Active_Object_Map): Added the deletion of the reverse map. * performance-tests/POA/Object_Creation_And_Registration/registration.cpp: New test to measure the time it takes to register and activate an object in the POA. * examples/POA/DSI/run_test.pl: * examples/POA/Default_Servant/run_test.pl: * examples/POA/On_Demand_Loading/run_test.pl: * examples/POA/On_Demand_Activation/run_test.pl: * examples/POA/Explicit_Activation/run_test.pl: Unlink ior files before starting the server. Wed Dec 30 01:17:42 1998 Nanbor Wang * tests/DynAny_Test/basic_test.dsp: Fixed project configurations. * tests/DynAny_Test/test_dynsequence.cpp (run_test): Don't delete , it is owned by the any underneath. * tao/encode.cpp (TAO_Marshal_Any::encode): Try to reuse the cdr string in an any as long as it has one, which is almost always be the case. * tao/DynAny_i.cpp (from_any,to_any): The correct way of making sure if an any contains any data is to check it's cdr ptr, not it's value. * tao/Any.cpp: Cleaned up the code and fixed many discrepencies between code and comments. Make sure ownerships are well kept. (CORBA_Any): Always duplicates the cdr string. now only refers to ownership of . (CORBA_Any): (Copy ctor) Always duplicates the cdr string. If owns its data, then we borrow it. Notice the copying any doesn't own the object. Tue Dec 29 22:53:08 1998 David L. Levine * performance-tests/Cubit/TAO/IDL_Cubit/run_tests.pl: removed # at beginning of first line of script. Thanks to Nanbor and Andy for reporting that they couldn't run it, because they use tcsh and set their LD_LIBRARY_PATH after sourcing their .[t]cshrc. 1998-12-29 Seth Widoff * orbsvcs/orbsvcs/Trader/Trader_T.{h,cpp}: * orbsvcs/orbsvcs/Trader/Constraint_Visitors.{h,cpp}: For the "in" operator, the trader now uses Dynamic Anys to access the values of service offer sequences rather than the deprecated Any::value method. Thanks to Nanbor for noticing this use of the deprecated method. Tue Dec 29 14:29:22 1998 Carlos O'Ryan * tao/try_macros.h: Changed the definition of the TAO_TRY_ENV macro from __env to _tao_try_environment. * tao/decode.cpp: Removed another __ in a variable name. * tao/ORB.cpp: * tao/DynAnyC.cpp: * tao/Object_KeyC.cpp: * tao/POAC.cpp: Changed _tc__tc for _tc_TAO_tc * orbsvcs/orbsvcs/Event/Event_Channel.cpp: Removed explicit use of __env. Tue Dec 29 15:18:09 1998 Douglas C. Schmidt * TAO version 0.2.46 released. Tue Dec 29 14:40:55 1998 Kirthika Parameswaran * examples/POA/On_Demand_Loading/README: Added changes to the README so as to make it clear that the level of granualarity in this example is at the object level, i.e. every object is associated with an dll which is loaded on demand. Tue Dec 29 14:32:06 1998 Douglas C. Schmidt * TAO version 0.2.45 released. Tue Dec 29 13:16:08 1998 Aniruddha Gokhale * TAO_IDL/be/be_visitor_typecode/typecode_defn.cpp: We were generating variables with names that had two consecutive underscores ('_'). However, as per the C++ standard, variables with __ are reserved for the compiler. This happened with the typecode variables with prefix _tc__tc. We now generate _tc_TAO_tc. Thanks to Jonathan Biggar for noticing this. Mon Dec 28 16:44:18 1998 Irfan Pyarali * orbsvcs/orbsvcs/Event/EC_Gateway_UDP: Fixed "used before it was declared inline" problem. Also, made opertor== and opertor!= class methods. Mon Dec 28 13:13:03 1998 Douglas C. Schmidt * examples/Simple/time/Server_i.cpp (parse_args): Fixed an incorrect return value. Thanks to Barry Hoggard for reporting this. Mon Dec 28 11:49:04 1998 Carlos O'Ryan * */Makefile: Updated dependencies. * orbsvcs/orbsvcs/Event/EC_Gateway_UDP.h: * orbsvcs/orbsvcs/Event/EC_Gateway_UDP.cpp: Fixed egcs 1.1.1 warning, thanks to David for reporting this one. * tao/ORB.h: Removed _tc_alias and _tc_except from the list of TypeCode constants, thanks to Jerry De Master for reporting this problem. Mon Dec 28 10:07:55 1998 David L. Levine * orbsvcs/orbsvcs/Makefile: re-enabled sfp build. It should be fixed now. Sun Dec 27 15:23:25 1998 Nanbor Wang * orbsvcs/orbsvcs/Trader/Trader_Utils.cpp: * orbsvcs/orbsvcs/Trader/Trader.cpp: * orbsvcs/orbsvcs/Trader/Service_Type_Repository.cpp: Removed some extra template instantiations. Thanks to Ben Eng for reporting this. Sun Dec 27 14:33:33 1998 David L. Levine * TAO_IDL/Makefile,fe/y.tab.{h,cpp,cpp.diff}: commented out #pragma ident in generated parser, because some compilers complain about it. Thanks to Barry Hoggard for reporting this. * performance-tests/Cubit/TAO/DII_Cubit/Makefile: added -ptr options for Sun CC, so that it uses the IDL_Cubit template repository. Sun Dec 27 09:27:23 1998 David L. Levine * orbsvcs/orbsvcs/Makefile: don't build sfp, even with Sun CC, because the Makefile didn't handle it properly. Fri Dec 25 18:26:31 1998 Irfan Pyarali * tao/Object_Table: Renamed all Object_Table classes to Active_Object_Map. This makes the names consistent with the new POA spec. Also renamed the files. The other major change was to add a reverse lookup table to the active object map. This new table map servants to object ids. This is used to find servants in the active object map when _this() is called. The previous implementation was a simple, but expensive, linear search. This made object registration and activation very expensive when there are many objects in the active object map. Note that this optimization is only relevant in the UNIQUE_ID POA policy. Thanks to Jonathan Biggar for suggesting this optimization. * tao/orbconf.h: TAO_DEFAULT_SERVER_OBJECT_TABLE_SIZE is deprecated. Please use TAO_DEFAULT_SERVER_ACTIVE_OBJECT_MAP_SIZE. * tao/Server_Strategy_Factory, default_server and params: Added the ability to change the default creation policy of reverse active object map. * tao/Operation_Table: Removed template specialization and made use of the new ACE_Hash_Map_Manager_Ex. * tao/Servant_Base.h (TAO_Servant_Hash): Added a new class so that we can hash servants. * tao/Sequence.h (TAO_Base_Sequence): Removed the hash() method from this class. It was a non-standard method that is not required with the new Hash_Map_Manager_Ex design. Added TAO_ObjectId_Hash that will help us hash object ids. * tao/POA: Removed the second POA constructor which took the active object map as a parameter. Since the user never gets to call this function, this second constructor is extra. Anyway, if the user does want to specific their own (custom) active object map, they should use the -ORBsystemidpolicydemuxstrategy user or -ORBuseridpolicydemuxstrategy user or -ORBuniqueidpolicyreversedemuxstrategy user policy. This change also effected some functions in ORB.cpp, ORB_Core.cpp, and poa_T.cpp. * tao/default_server.cpp (parse_args): Added new option -ORBuniqueidpolicyreversedemuxstrategy. Fri Dec 25 18:27:21 EST 1998 Aniruddha Gokhale * TAO_IDL/be/be_array.cpp TAO_IDL/be_include/be_array.h: Moved code generation of the var, out, and forany classes to the visitor for arrays since there were some dependencies on the information stored in the visitor context. In particular, this was required to handle anonymous arrays in structs and unions. * TAO_IDL/be/be_type.cpp (nested_type_name) TAO_IDL/be_include/be_type.h (nested_type_name): Added a third parameter for prefix. We need this for anonymous array type names who have an underscore prepended to the field name. * TAO_IDL/be/be_visitor_array/array_ch.cpp TAO_IDL/be/be_visitor_array/array_ci.cpp TAO_IDL/be/be_visitor_array/array_cs.cpp TAO_IDL/be/be_visitor_array/cdr_ch.cpp TAO_IDL/be/be_visitor_array/cdr_cs.cpp TAO_IDL/be_include/be_visitor_array/array_ch.h TAO_IDL/be_include/be_visitor_array/array_ci.h: Moved code generation of the var, out, and forany classes to the visitors. In addition, fixed a number of problems with anonymous arrays in structs and unions. Fixed CDR operators for anonymous arrays. * TAO_IDL/be/be_visitor_field/field_ch.cpp TAO_IDL/be/be_visitor_field/field_ci.cpp TAO_IDL/be/be_visitor_field/field_cs.cpp TAO_IDL/be/be_visitor_field/cdr_cs.cpp Fixed problems with anonymous arrays and sequences. * TAO_IDL/be/be_visitor_union_branch/private_ch.cpp TAO_IDL/be/be_visitor_union_branch/public_access.cpp TAO_IDL/be/be_visitor_union_branch/public_assign.cpp TAO_IDL/be/be_visitor_union_branch/public_ch.cpp TAO_IDL/be/be_visitor_union_branch/public_ci.cpp TAO_IDL/be/be_visitor_union_branch/public_cs.cpp TAO_IDL/be/be_visitor_union_branch/public_reset.cpp: Fixed problems with anonymous arrays and sequences. Thu Dec 24 09:45:36 1998 Douglas C. Schmidt * TAO version 0.2.44 released. Thu Dec 24 09:22:02 1998 David L. Levine * orbsvcs/orbsvcs/Makefile: only build sfp with Sun CC for now. On some other platforms, the generated code from sfp.idl doesn't compile. Wed Dec 23 23:55:25 1998 Kirthika Parameswaran * examples/POA/On_Demand_Loading/Servant_Manager.{h,cpp}: New addition to the repository. These are the helper files containing the common code between the ServantActivator and the ServantLocator. * examples/POA/On_Demand_Loading/Servant_Activator.{h,cpp}: * examples/POA/On_Demand_Loading/Servant_Locator.{h,cpp}: Removed the superflous methods and added an object of ServantManager which provides the helper methods. * examples/POA/On_Demand_Loading/Makefile: It now contains a Servant_Manager entry. Wed Dec 23 15:16:00 CST 1998 Chris Gill * TAO/docs/events_tutorial.html: added tutorial on event channel. Thanks to Carlos O'Ryan for ongoing help maintaining this, and to Tim Harrison for providing the original version. * TAO/orbsvs/tests/EC_Throughput/ECT_Consumer.cpp TAO/orbsvs/tests/EC_Throughput/ECT_Consumer_Driver.cpp TAO/orbsvs/tests/EC_Throughput/ECT_Supplier_Driver.cpp: converted a number of places to use the TAO_CHECK_ENV_RETURN_VOID macro consistently, added comments, etc. Wed Dec 23 14:44:04 EST 1998 Aniruddha Gokhale * TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ch.cpp: TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ch.cpp: Due to a bug in g++2.7.2.3 we were getting lots of link time undefined symbol errors. This happened for sequences of objects and interfaces for those platforms that do not support template specializations or require explicit template instantiations. Thanks to the efforts of David Levine, we were able to pinpoint precisely where the problem occured. This was fixed by moving the generated class declaration of the object manager after the generated class declaration of the sequence. * TAO_IDL/be/be_visitor_interface/interface_ss.cpp: In the generated code for _non_existent_skel, the _tao_obj_reference parameter was unused. We were getting warnings for this case. * tao/Sequence.h: A number of classes had their destructors protected. They are now moved to the public section. Wed Dec 23 12:30:25 1998 Nanbor Wang * tao/try_macros.h (TAO_RETHROW_RETURN_VOID): This macro was not defined for platforms without native c++ exceptions. * tests/Param_Test/except.cpp (dii_req_invoke): Changed to use TAO_RETHROW_SAME_ENV_RETURN_VOID. We are not throwing the exception to another env here. Wed Dec 23 11:07:46 EST 1998 Aniruddha Gokhale * TAO_IDL/be/be_type.cpp (nested_type_name): We had forgotten to insert a "::" in the computation of the nested type name. Thanks to Christian von Mueffling (cvm@aiss.de) for sending the bug report. Wed Dec 23 03:41:07 1998 Nanbor Wang * tests/Param_Test/*.{h,cpp} (dii_req_invoke): Added a new mehtod for all test classes. All of them but Test_Exception simply invoke the passed-in DII request. But for Test_Exception, we need to catch the exceptions from the server and check if the exceptions are what we are waiting for. * tests/Param_Test/objref.cpp (init_parameters): Although and are pointers to return values, they still need to be initialized to nil object reference. Otherwise, any can't encode it. Tue Dec 23 02:07:14 1998 Kirthika Parameswaran * examples/POA/Explicit_Activation/Makefile: * examples/POA/On_Demand_Activation/Makefile: * examples/POA/On_Demand_Loading/Makefile: Removed dependency on libserver.a from all the above Makefiles. Tue Dec 22 13:43:35 1998 Nanbor Wang * TAO_IDL/be/be_visitor_array/array_ch.cpp (visit_array): We should use TAO_NAMESPACE_STORAGE_CLASS to decorate the array memory management functions only when the array is directly within a module. Otherwise, "static" should always be used. Tue Dec 22 09:13:06 1998 David L. Levine * examples/Simple/chat/README: updated VxWorks information. * examples/POA/Generic_Servant/Makefile: added LIBS=-lTAO to avoid build warning on DU 4.0. * TAO_IDL/driver/drv_private.cpp: protected NFILES #define. Tue Dec 22 09:36:37 EST 1998 Aniruddha Gokhale * TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_cs.cpp: TAO_IDL/be/be_visitor_sequence/gen_bounded_sequence_cs.cpp: TAO_IDL/be/be_visitor_sequence/gen_bounded_str_sequence_cs.cpp: TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_cs.cpp: TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_cs.cpp: Added these new files. Some compilers were giving lots of problems when we had virtual methods inlined. So we have now moved these methods (e.g., _allocate_buffer, _deallocate_buffer, _shrink_buffer) to the implementation file. * TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ch.cpp: TAO_IDL/be/be_visitor_sequence/gen_bounded_sequence_ch.cpp: TAO_IDL/be/be_visitor_sequence/gen_bounded_str_sequence_ch.cpp: TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ch.cpp: TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_ch.cpp: The destructor is now defined "virtual" because there are virtual methods. * TAO_IDL/be/be_visitor_sequence.cpp: Added #include statements for the newly added files. * TAO_IDL/be_include/be_visitor_sequence/sequence_cs.h: A bunch on new methods added to the visitor class. These methods are defined in the five new files added above. Tue Dec 22 07:44:07 1998 David L. Levine * tao/Marshal.i (deep_free): commented out unused parameter "source". Tue Dec 22 03:33:14 1998 Nanbor Wang * tao/Exception.{h,cpp}: If you try to catch the same exception twice, VC will complain. Added a new TAO_DONT_CATCH class for use when we want to disable catching all exceptions. Tue Dec 22 02:37:38 1998 Kirthika Parameswaran * examples/POA/On_Demand_Loading/Servant_Activator.h: Added an ACE_HASH_MAP_MANAGER member which associates an ObjectId with an dll. * examples/POA/On_Demand_Loading/Servant_Activator.cpp (activate_servant): The dll object is bound to the ObjectId of the servant. * examples/POA/On_Demand_Loading/Servant_Activator.cpp (deactivate_servant): The dll object is removed from the servant hash map. Tue Dec 22 01:12:16 1998 Nanbor Wang * tao/try_macros.h: Defined TAO_CATCHANY as TAO_CATCH (TAO_DONT_CATCH, ex) when building DEBUG library (when ACE_NDEBUG is _not_ defined.) This will make un-expected exception very out-standing and let debuggers have a chance to catch these exceptions for us. * orbsvcs/orbsvcs/Trader/Trader_T.cpp (extract): Changed to use any's >>= operator to extract a sequence. No need to decode it yourself. Mon Dec 21 21:42:24 1998 Nanbor Wang * orbsvcs/orbsvcs/Trader/Constraint_Nodes.cpp (TAO_Literal_Constraint): Strings carried by any's are managed by any's. They must be duplicated before assigned to others. Mon Dec 21 20:45:26 1998 Irfan Pyarali * examples/POA/Generic_Servant/MyFooServant.cpp: Changed ACE_Svc_Export to GENERIC_SERVANT_Export. Mon Dec 21 17:05:25 1998 Douglas C. Schmidt * TAO/TAO-INSTALL.html: Updated the installation notes to indicate that all of TAO should be built. Thanks to Brian Wallis for reporting this. Mon Dec 21 17:05:25 1998 Nanbor Wang * tao/Marshal.i (deep_free): * tao/decode.cpp: * tao/encode.cpp: More memory management bug fixes for Any with Any. Mon Dec 21 11:56:29 1998 Irfan Pyarali * TAO_IDL/be/be_visitor_array/array_ch.cpp (visit_array): Fixed the functions to use TAO_NAMESPACE_STORAGE_CLASS instead of static. Thanks to Patrice Bensoussan for reporting this bug. Mon Dec 21 09:15:11 1998 Carlos O'Ryan * orbsvcs/tests/EC_Throughput/ECT_Driver.i: Fixed some warnings reported by David. Mon Dec 21 08:30:09 1998 David L. Levine * performance-tests/Cubit/TAO/DII_Cubit/Makefile: for DEC cxx only, added IDL_Cubit template repository location to CCFLAGS. That allows the linker to find all necessary template instantiations. Sun Dec 20 20:28:36 1998 Nanbor Wang * tests/Param_Test/param_test_i.cpp (test_any): Added tests for array, struct, and sequence types. * tests/Param_Test/any.{h,cpp}: Added tests for more data types. Restructured parameters setting routine so it will always test all the types included in the test. Sun Dec 20 09:17:51 1998 David L. Levine * examples/Simple/chat/README: added VxWorks info. Sun Dec 20 04:34:58 1998 Irfan Pyarali * examples/Simple/chat/Client_i.cpp: Couple of minor changes. * examples/Simple/chat: Added NT makefiles. Sat Dec 19 20:12:36 1998 Nanbor Wang * tao/Any.cpp (operator<<=): Added a missing "const" keyword. Thanks to David for noticing this. Fri Dec 18 00:20:37 1998 Kirthika Parameswaran * examples/POA/On_Demand_Loading/Servant_Locator.{h,cpp}: This interface of the Servant_Manager loads the servant per client request. * examples/POA/On_Demand_Loading/run_test_pl: This script is used to run this example. * examples/POA/On_Demand_Loading/server.cpp: Added changes to incorporate the Servant Locator interface. * examples/POA/On_Demand_Loading/README: Added changes about the Servant Locator. * orbsvcs/orbsvcs/Trader/Trader_Interfaces.cpp (export): commented out declaration/initialization of unused local plength. Fri Dec 18 23:02:08 1998 Kirthika Parameswaran * examples/POA/On_Demand_Loading: Removed the following entries: examples/POA/On_Demand_Loading/Dir_Service.idl examples/POA/On_Demand_Loading/Dir_Sevice_i.{h,cpp} examples/POA/On_Demand_Loading/Makefile.DirService examples/POA/On_Demand_Loading/Makefile.Client examples/POA/On_Demand_Loading/client.cpp Now this example uses the examples/POA/Generic_Servant/MyFooServant as the servant which will be loaded on demand. * examples/POA/Generic_Servant/Makefile: Added changes so that an libMyFoo.so is created. * examples/POA/Generic_Servant/MyFooServant.cpp (create_MyFoo): Added this extern "C" function which creates an MyFoo object. Fri Dec 18 16:18:50 1998 Nanbor Wang * tao/Any.{i,cpp} (free_value): Moved it to cpp file. * be/be_visitor_interface/any_op_cs.cpp (>>=): Fixed a memory management problem. * be/be_visitor_array/any_op_cs.cpp (>>=): * be/be_visitor_enum/any_op_cs.cpp (>>=): * be/be_visitor_exception/any_op_cs.cpp (>>=): * be/be_visitor_sequence/any_op_cs.cpp (>>=): * be/be_visitor_structure/any_op_cs.cpp (>>=): * be/be_visitor_union/any_op_cs.cpp (>>=): Adopted the changes made in Any. Some of them may still have memory management problem. * tao/Any.{h,i,cpp}: The usage of was not very consistant. Sometime it meant any owns the cdr string, sometimes it meant any owns the internal data stored in . It is now changed to indicate whether any owns the internal data. (value): Now return the internal data if there's own, otherwise, it return a pointer to the cdr string. (free_value): A small helper function to free up the internal data held by any. (any_owns_data): Now return true when any owns a valid data. * tao/Connect.cpp: Fixed typo in error messages. Fri Dec 18 12:14:48 1998 Carlos O'Ryan * orbsvcs/tests/EC_Throughput/ECT_Scheduler_Info.h: * orbsvcs/tests/EC_Throughput/ECT_Throughput.cpp: I'm starting to support a run-time scheduler for this test. But it is still experimental and must be enabled at compile time. Fri Dec 18 09:34:14 1998 Carlos O'Ryan * orbsvcs/tests/EC_Throughput/ECT_Driver.h: * orbsvcs/tests/EC_Throughput/ECT_Driver.i: * orbsvcs/tests/EC_Throughput/ECT_Driver.cpp: * orbsvcs/tests/EC_Throughput/ECT_Consumer_Driver.cpp: * orbsvcs/tests/EC_Throughput/ECT_Throughput.cpp: * orbsvcs/tests/EC_Throughput/ECT_Consumer.cpp: * orbsvcs/tests/EC_Throughput/ECT_Supplier.cpp: The test can easily measure latency as well as throughput, so I added the necessary methods in the ECT_Driver class. * orbsvcs/orbsvcs/Event/EC_Gateway_UDP.cpp: Added missing template instantiations. Fixed warnings reported by g++ 2.7.2.3 1998-12-17 Seth Widoff * orbsvcs/orbsvcs/Trader/Trader_Utils.{h,cpp}: * orbsvcs/orbsvcs/Trader/Trader_Interfaces.{cpp}: My crazy attempt to save copying by passing around sequence buffers backfired -- it worked on some platforms but not others. So I've supplanted that approach with good, old fashioned copying. Thanks to Sunil Kumar 's example program for helping me to pinpoint the problem. Thu Dec 17 16:11:58 1998 Carlos O'Ryan * orbsvcs/orbsvcs/Event/EC_Gateway_UDP.h: * orbsvcs/orbsvcs/Event/EC_Gateway_UDP.i: * orbsvcs/orbsvcs/Event/EC_Gateway_UDP.cpp: * orbsvcs/tests/EC_Mcast/EC_Mcast.cpp: Added support for fragmentation and reassembly to the UDP gateway. This is still experimental, but seems to work OK. Though I have payed attention to the first order optimizations: no data copying, little or no memory allocation, reduced locking; we have to systematically explore if there are any performance bottlenecks or problems. I still have to Purify/Quantify this code. * tao/ORB_Core.cpp: By default the CDR allocators where TSS, but this was not safe for certain applications. Thanks to Ron Barack for pointing this out. * orbsvcs/tests/EC_Throughput/run_test.pl: Updated the script. Thu Dec 17 14:09:33 1998 Jeff Parsons * tao/DynAnyC.cpp: Added some AHETI lines at the end to reflect what the updated IDL compiler does. Should fix a build error reported on Dec Alpha. Builds ok on NT, doing further checking on Unix. Thu Dec 17 04:45:39 1998 Aniruddha Gokhale * tao/IIOP_Object.cpp (constructor): We were missing the initialization of the forward profile and forward profile success in the constructor with the following signature. IIOP_Object::IIOP_Object (const char *host, const CORBA::UShort port, const char *objkey, char *repository_id); Without the above initialization, we were getting segmentation fault in the destructor of the underlying Profile as it tried to delete the forward profile which pointed to an illegal address in memory. Tue Dec 15 19:39:45 1998 Nanbor Wang * tao/ORB.h: * tao/corba.h: Commented out "#pragma pack" directive NT used. This fixed the mis-alignment problem specific on NT. Tue Dec 15 19:04:37 1998 Nagarajan Surendran * orbsvcs/orbsvcs/sfp.idl : Changed according to the version 1.1 changes. * orbsvcs/orbsvcs/AV/sfp.{h,cpp}: Implemenation of the Simple Flow Protocol specified in the Audio/Video Streaming specification. This currently has support for sending simple frames without fragmentation. * orbsvcs/tests/AVStreams/sfp/client.cpp: * orbsvcs/tests/AVStreams/sfp/server.cpp: client and server test files for sfp. * orbsvcs/orbsvcs/Makefile: Added sfp to the list of IDL_SRCS. Tue Dec 15 14:45:49 1998 David L. Levine * *.h,TAO_IDL/be/be_codegen.cpp (end_server_template_header): removed () from #pragma implementation argument. Thanks to Christian v. Mueffling for reporting this. Tue Dec 15 14:29:33 1998 Nanbor Wang * orbsvcs/tests/EC_Throughput/EC_Throughput.ds[wp]: * orbsvcs/tests/EC_Throughput/EC_Supplier.dsp: * orbsvcs/tests/EC_Throughput/EC_Comsumer.dsp: Added/Updated projects/workspace. Tue Dec 15 10:40:03 1998 Carlos O'Ryan * orbsvcs/tests/EC_Throughput/Makefile: * orbsvcs/tests/EC_Throughput/ECT_Driver.h: * orbsvcs/tests/EC_Throughput/ECT_Driver.cpp: Base class for the test drivers. * orbsvcs/tests/EC_Throughput/ECT_Consumer_Driver.h: * orbsvcs/tests/EC_Throughput/ECT_Consumer_Driver.cpp: * orbsvcs/tests/EC_Throughput/ECT_Supplier_Driver.h: * orbsvcs/tests/EC_Throughput/ECT_Supplier_Driver.cpp: * orbsvcs/tests/EC_Throughput/ECT_Supplier.h: * orbsvcs/tests/EC_Throughput/ECT_Supplier.cpp: * orbsvcs/tests/EC_Throughput/ECT_Consumer.h: * orbsvcs/tests/EC_Throughput/ECT_Consumer.cpp: Moved the non-collocated test drivers to separate files. * orbsvcs/tests/EC_Throughput/ECT_Throughput.h: * orbsvcs/tests/EC_Throughput/ECT_Throughput.cpp: This is a collocated version of the Event Channel Throughput test. Mon Dec 14 20:38:54 1998 Nanbor Wang * TAO_IDL/be/be_codegen.cpp: * TAO_IDL/be/be_init.cpp (BE_init): Changed to initialize tao_cg to 0 and delay the actual initialization in BE_init. This avoid the "order of initialization" problem and allow us to trace TAO_IDL. The output if not pretty though. Thanks to Ulf Jaehrig for reporting this. Mon Dec 14 16:16:34 1998 Carlos O'Ryan * tao/Environment.cpp: Added the CORBA_Environment::exception_id() method, thanks to diesel@dekwl.abb.com (sorry, your name was not in the message!) for reporting this problem. 1998-12-14 Seth Widoff * docs/releasenotes/trader.html: Added instructions on using -TSdumpior to have the trader dump its ior to a file for use by -ORBtradingserviceior and the TradingServiceIOR environment variable. Removed the bit about having the export_test use -ORBport 0 when run on the same machine as the trader it's testing, since this is now the default. Thanks to Carlos O'Ryan for pointing this out. Mon Dec 14 12:21:23 1998 Nanbor Wang * TAO/performance-tests/Cubit/TAO/MT_Cubit/{client,server}.dsp: * TAO/performance-tests/Cubit/TAO/IDL_Cubit/{client,server}.dsp: * TAO/tao/TAO_Static.dsp: Removed "__ACE_INLINE__=0" from the default static release build settings. Mon Dec 14 08:35:11 1998 David L. Levine * BUG-REPORT-FORM: added a few FMMs. * performance-tests/Cubit/TAO/MT_Cubit/Timer.cpp (get_elapsed_time): removed VxWorks-conditional code. It was unnecessary, and dangerous because it overwrote the measured usecs with a hard-coded value of 2000. * performance-tests/Cubit/TAO/MT_Cubit/client.cpp (print_util_stats): fixed printout to reflect whether -l option had been used or not. * performance-tests/Cubit/TAO/MT_Cubit/client.cpp: moved ACE_OS::exit () call to run (), in the hope that we'll eventually be able to run more than one iteration of the utilization test before exiting. Mon Dec 14 08:08:32 EST 1998 Aniruddha Gokhale * TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ci.cpp: TAO_IDL/be/be_visitor_sequence/gen_bounded_sequence_ci.cpp: TAO_IDL/be/be_visitor_sequence/gen_bounded_str_sequence_ci.cpp: TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ci.cpp: TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_ci.cpp: The generated code was using inline functions such as allocbuf and freebuf before their implementation. Some compilers were issuing lots of warnings. Thanks to David Levine for sending me a log of these warnings. In addition, when we use these static methods, we now use their fully scoped name to avoid any conflicts and/or ambiguities. Sun Dec 13 08:32:04 1998 David L. Levine * orbsvcs/tests/Trading/Service_Type_Exporter.cpp (remove_all_types): removed unused label "remove_type_label". 1998-12-12 Seth Widoff * orbsvcs/tests/Trader/README: * orbsvcs/tests/Trader/Service_Type_Exporter.cpp: The trader test no longer prints an exception message in the unexceptional case that the trader has unregistred test types when the export_test first tries to remove them. Updated the expected output in the README file to reflect the change. Sat Dec 12 11:29:38 EST 1998 Aniruddha Gokhale * TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ci.cpp: TAO_IDL/be/be_visitor_sequence/gen_bounded_sequence_ci.cpp: TAO_IDL/be/be_visitor_sequence/gen_bounded_str_sequence_ci.cpp: TAO_IDL/be/be_visitor_sequence/gen_object_manager_ci.cpp: TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ci.cpp: TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_ci.cpp: The generated signatures of various methods contained default arguments which should only appear in the class definition. This has been fixed. Thanks to David Levine for reporting the problem. Sat Dec 12 09:15:14 1998 David L. Levine * performance-tests/Cubit/TAO/MT_Cubit/client.cpp (print_latency_stats): "microseconds" instead of "seconds". Also, added a call to ACE_OS::exit (), for the utilization test only. Otherwise, the program never terminates. Fri Dec 11 16:53:41 1998 Carlos O'Ryan * orbsvcs/orbsvcs/Event/EC_Gateway_UDP.cpp: The UDP_Sender::init() method should only create the RT_Info if it is not there already. Thanks to Dave Meyer and J. Russell Noseworthy for providing this fix. Fri Dec 11 12:39:22 1998 Alexander Babu Arulanthu * TAO_IDL/tao_idl.1: * docs/compiler.html: Updated documentation for lookup strategies. Fri Dec 11 11:11:27 EST 1998 Aniruddha Gokhale * TAO_IDL/be/be_sequence.cpp: For sequences of CORBA::Object, we were generating code such that the base class was the Pseudo_Sequence class in tao/sequence_T.h. However, these base template classes do not provide the _upcast and _downcast methods since they are not required for the pseudo objects. Thus, whenever the element type of a sequence is AST_PredefinedType::PT_pseudo, we check if it was a CORBA::Object or a true pseudo-object. If it is CORBA::Object, then the managed type becomes MNG_OBJREF instead of MNG_PSEUDO. Thus, now we generate the base template class to be Object_Sequence which have the _upcast and _downcast methods. Thanks to Ron Barack (rab@terminal.cz) for reporting that the _upcast and _downcast methods were not available for sequences of CORBA::Objects. Fri Dec 11 08:54:42 1998 David L. Levine * VERSION: added ace-users/comp.soft-sys.ace info. Fri Dec 11 07:28:54 EST 1998 Aniruddha Gokhale * TAO_IDL/be/be_visitor_sequence.cpp: Added #include for newly added files described below. * TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ch.cpp: TAO_IDL/be/be_visitor_sequence/gen_bounded_sequence_ch.cpp: TAO_IDL/be/be_visitor_sequence/gen_bounded_str_sequence_ch.cpp: TAO_IDL/be/be_visitor_sequence/gen_object_manager_ch.cpp: TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ch.cpp: TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_ch.cpp: TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp: We no longer generate all the code for the base sequence classes in the header file itself (Recall that these base sequence classes are used for platforms that do not support template specialization OR require explicit template instantiation). Instead, the implementation of all the methods of the classes is now generated in the *.i (inlined) file. The reason for doing this was to handle problems with sequences of forward declared interfaces. Code for sequences of forward declared interfaces would use operations such as _duplicate, _nil, and others that get defined only when the actual interface definition is seen. To circumvent this problem, we now generate only the class definition in the header file and all the implementation is moved to the inline file. Thanks to Ron Barack (rab@terminal.cz) for submitting the bugreport. In addition, I realized that these base sequence classes were used only when the platform requires explicit template instantiation or does not support template specialization. For the other cases, the code for these base classes was never used and it was unnecessarily increasing the footprint. Hence, we now generate these base sequence classes and its associated inlined code inside conditional macro which we call AHETI (please see generated code). * TAO_IDL/be/be_visitor_sequence/sequence_ci.cpp: TAO_IDL/be_include/be_visitor_sequence/sequence_ci.h: Added code and new methods so that code for the base sequence classes can be generated in the *.i file. * TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ci.cpp: TAO_IDL/be/be_visitor_sequence/gen_bounded_sequence_ci.cpp: TAO_IDL/be/be_visitor_sequence/gen_bounded_str_sequence_ci.cpp: TAO_IDL/be/be_visitor_sequence/gen_object_manager_ci.cpp: TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ci.cpp: TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_ci.cpp: Newly added files that generate code for the base sequences in the *.i file. Thu Dec 10 21:48:08 1998 Kirthika Parameswaran * examples/Callback_Quoter/Consumer_Signal_Handler.h: * examples/Callback_Quoter/Consumer_Input_Handler.h: * examples/Callback_Quoter/Consumer_Handler.cpp: Replaced #include by #include "ace/OS.h" and also changed all #include to #include "ace/foo.h" wherever applicable. Thanks to David for pointing out these discrepancies. Thu Dec 10 09:30:23 1998 David L. Levine * examples/Callback_Quoter/Consumer_Input_Handler.h: replaced #include of OS.h with ACE.h. * examples/Callback_Quoter/Consumer_Signal_Handler.h: inserted #include of ace/ACE.h. * tao/Invocation.cpp (invoke): added ACE_UNUSED_ARG (retval) to avoid cxx compile warnings (with exceptions enabled). * VERSION: updated to match ACE VERSION file. Wed Dec 09 23:07:46 1998 David L. Levine * TAO version 0.2.43 released. Wed Dec 09 22:43:19 1998 David L. Levine * examples/Callback_Quoter/Consumer_Input_Handler.h: inserted #include of "ace/OS.h". * examples/POA/Forwarding/Makefile: removed hard-coded -g DCFLAG. Not all platforms use -g, and DCFLAGS should be set in $ACE_ROOT/include/makeinclude/platform_macros.GNU. Wed Dec 9 16:05:07 1998 Nanbor Wang * tao/Invocation.cpp (invoke): Fixed the memory leaks in preparing new exceptions. Thanks to Terry Rosenbaum for sending us the patch. Also applied more exception handling macros into this file. * tao/try_macros.h: Added TAO_THROW_ENV_RETURN_VOID. Wed Dec 9 13:26:50 1998 Chris Gill * orbsvcs/tests/Simulator/DOVEBrowser/DOVEBrowser.java orbsvcs/tests/Simulator/DOVEBrowser/DOVEBrowserApplet.java orbsvcs/tests/Simulator/DOVEBrowser/DemoCore.java orbsvcs/tests/Simulator/DOVEBrowser/NS_Resolve.java orbsvcs/tests/Simulator/DOVEBrowser/PushConsumer.java orbsvcs/tests/Simulator/DOVEBrowser/PushConsumerFactory.java: Cleaned up some type names in that had changed when RtecScheduler.idl was brought up to CORBA standard (type names and element names must differ in more than just letter case). Added support for -ORBnameserviceport on command line of the compiled DOVEBrowser version. Generalized command line option handling, fixed bug with using == instead of .equals for string comparison. * orbsvcs/tests/Simulator/Event_Supplier/Event_Sup.dsp orbsvcs/tests/Simulator/Event_Supplier/Logging_Sup.dsp: added -I switch with relative path to TAO\orbsvcs\orbsvcs to tao_idl invocation in the custom build step. 1998-12-09 Nagarajan Surendran * orbsvcs/orbsvcs/AV/AVStreams_i.cpp : Fixed warnings with TAO_ENDTRY after the return statements in functions. Wed Dec 9 11:03:13 EST 1998 Aniruddha Gokhale * TAO_IDL/be/be_visitor_sequence/elemtype.cpp: In the visit_interface and visit_interface_fwd methods, we were not generating the fully scoped name for code generated in the *.i or *.cpp file. Thanks to Naga (naga@cs.wustl.edu) for submitting the bugreport. Wed Dec 09 07:02:06 1998 David L. Levine * README, VERSION: expanded mention of BUG-REPORT-FORM. * performance-tests/Cubit/TAO/MT_Cubit/README.tests: removed -s option, because it's no longer used with MT_Cubit. Wed Dec 9 02:34:33 1998 Kirthika Parameswaran * examples/POA/On_Demand_Loading/server.cpp : * examples/POA/On_Demand_Loading/client.cpp : Replaced env.exception () checks with the TAO_TRY,TAO_CHECK macros. * examples/POA/On_Demand_Loading/Servant_Activator.cpp (incarnate): Added TAO_THROW macro for OBJECT_NOT_EXIST exception. Tue Dec 08 21:39:16 1998 David L. Levine * TAO_IDL_Makefile: enable DU 4.0 cxx 6.x warnings by default. Tue Dec 08 15:10:35 1998 Nanbor Wang * performance-tests/Cubit/TAO/IDL_Cubit/{client,server}.dsp: Added static build configurations. * performance-tests/Cubit/TAO/IDL_Cubit/Cubit_Server.cpp (init): * performance-tests/Cubit/TAO/IDL_Cubit/Cubit_Client.cpp (init): * performance-tests/Cubit/TAO/MT_Cubit/Cubit_Task.cpp (initialize_orb): * performance-tests/Cubit/TAO/MT_Cubit/Task_Client.cpp (init_orb): Hard-coded the orb initialization code to use the new function to setup resources when compiling static linked versions on NT. Notice when building static-linked version on NT, the svc.conf file is not used and the configurations is hard-coded in these two files. * tao/TAO_Internal.{h,cpp} (open_services): Added a new method that simply takes the arguments for TAO_Resource_Factory, TAO_Default_Client_Strategy_Factory and TAO_Default_Server_Strategy_Factory directly and initializes them. This eliminates the need of loading in a DLL when it is not desirable. Removed for this is now covered by the new method. Like the original , the new method is also one-shot. Once you call either , all subsequence calls to either functions become no-ops. Tue Dec 8 10:17:16 1998 Carlos O'Ryan * tao/CDR.cpp: Fixed a problem with the CDR::grow routine: it estimated the size *before* alignment, after the alignment the object did not fit anymore. Thanks to Dave Meyer for providing an easy way to reproduce this problem, and for his workmates at SAIC for finding the problem. Also fixed a problem in the write_array() method when SWAP_ON_WRITE is enabled, thanks to Istvan Buki for reporting this one. Tue Dec 8 07:22:42 1998 Nagarajan Surendran * orbsvcs/orbsvcs/AV/AVStreams_i.cpp : Fixed the template instantiation problems. Thanks to Andy for reporting this. Tue Dec 8 02:09:47 1998 Kirthika Parameswaran * examples/POA/On_Demand_Loading/server.cpp (main): Changed the ObjectID format. * examples/POA/On_Demand_Loading/client.cpp (main): Added the end_note() request call on the object. * examples/POA/On_Demand_Loading/Servant_Activator.h: Changed the dll object pointer from a pointer object to simply an instantiation of ACE_DLL. * examples/POA/On_Demand_Loading/Servant_Activator.cpp (incarnate): Added an dll object open() call explicitly which was done implicitly before along with the dll object creation. * examples/POA/On_Demand_Loading/Servant_Activator.cpp (parse_string): Updated the ObjectID format to dllname:factory_method. * examples/POA/On_Demand_Loading/Dir_Service_i.cpp: Added some ACE_DEBUG statements to make the output clearer. * examples/POA/On_Demand_Loading/README: Added it to the repository. Tue Dec 8 00:49:23 1998 Nanbor Wang * tao/CDR.i: Applied more exception handling macros. Mon Dec 7 22:00:50 1998 Jeff Parsons * TAO_IDL/ast/ast_expression.cpp: Changed a few lines so the idl compiler will accept a value of 65535 for a const unsigned short (it previously rejected anything > 65534). Mon Dec 7 15:28:16 1998 Shawn Michael Atkins * performance-tests/Thruput/TAO/utils.cpp (psecs): fixed another warning that David was getting about an implicit cast from double to int. Mon Dec 7 12:48:29 1998 Nanbor Wang * tao/try_macros.h: Removed TAO_CHECK_CONDITION_ENV_RETURN[_VOID]. * tao/decode.cpp: Removed the use of TAO_CHECK_CONDITION_ENV_RETURN. Mon Dec 7 05:26:35 EST 1998 Aniruddha Gokhale * docs/compiler.html: Fixed the entry for -St (suppressing typecodes). It was appearing as -Ge. Thanks to Ossama Othman for noticing this. Sun Dec 6 17:48:21 1998 Darrell Brunsch * orbsvcs/tests/ImplRepo/IR_Helper.cpp: * orbsvcs/tests/ImplRepo/Repository_Test.cpp: * orbsvcs/tests/ImplRepo/airplane_server_i.cpp: * orbsvcs/tests/ImplRepo/run_test.pl: * orbsvcs/ImplRepo_Service/ImplRepo.cpp: * orbsvcs/ImplRepo_Service/ImplRepo.idl: * orbsvcs/ImplRepo_Service/ImplRepo_i.cpp: * orbsvcs/ImplRepo_Service/ImplRepo_i.h: * orbsvcs/ImplRepo_Service/Repository.cpp: Redid all formating (mainly {} blocks) to be the common ACE style. Checked and fixed the base member init sections to be in the right order. Made sure that all methods threw the exceptions (and only the exceptions) that were specified. Also changed how the -d debug flag works. Unlike other tests it now takes in a level with it (instead of the additive property. This allows me to use a default of 1 and lets the user use -d 0 to quiet the IR altogether. 1998-12-06 Pradeep Gore added the following files for the implementation of the Cos Event Channel - * orbsvcs/orbsvcs/CosEventChannelAdmin.idl * orbsvcs/orbsvcs/CosEventComm.idl * orbsvcs/orbsvcs/CosEvent/EventChannel_i.h * orbsvcs/orbsvcs/CosEvent/EventChannel_i.cpp * orbsvcs/orbsvcs/CosEvent/SupplierAdmin_i.h * orbsvcs/orbsvcs/CosEvent/SupplierAdmin_i.cpp * orbsvcs/orbsvcs/CosEvent/ConsumerAdmin_i.h * orbsvcs/orbsvcs/CosEvent/ConsumerAdmin_i.cpp * orbsvcs/orbsvcs/CosEvent/ProxyPushSupplier_i.h * orbsvcs/orbsvcs/CosEvent/ProxyPushSupplier_i.cpp * orbsvcs/orbsvcs/CosEvent/ProxyPushConsumer_i.h * orbsvcs/orbsvcs/CosEvent/ProxyPushConsumer_i.cpp 1998-12-06 Nagarajan Surendran * orbsvcs/orbsvcs/AV/AVStreams_i.cpp : Fixed the TAO_THROW compilation errors. Thanks to David for pointing this out. Sun Dec 6 14:13:52 1998 Ossama Othman * TAO_IDL/tao_idl.1: Created a man page for tao_idl based on Carlos' HTML tao_idl compiler page. Sat Dec 6 13:30:50 1998 Darrell Brunsch * orbsvcs/tests/ImplRepo/server_impl.cpp: Forgot a TAO_CHECK_ENV. * orbsvcs/tests/ImplRepo/IR_Helper.cpp: * orbsvcs/tests/ImplRepo/IR_Helper.h: * orbsvcs/ImplRepo_Service/ImplRepo.idl: * orbsvcs/ImplRepo_Service/ImplRepo_i.h: * orbsvcs/ImplRepo_Service/ImplRepo_i.cpp: * orbsvcs/ImplRepo_Service/Repository.h: * orbsvcs/ImplRepo_Service/Repository.cpp: * orbsvcs/tests/ImplRepo/Repository_Test.cpp: Changed the storage of the hostname from a number to a string. Sun Dec 6 03:23:21 1998 Nagarajan Surendran * orbsvcs/orbsvcs/AVStreams.idl: Added the idl code for the Audio/Video full profile implementation. * orbsvcs/orbsvcs/AV/AVStreams_i.{h,cpp}: Added code for the full profile implementation of the Audio/Video Streaming service. The Audio/Video Streaming service now supports flows. Defined new classes TAO_FlowConnection, TAO_FlowEndPoint, TAO_FlowProducer, TAO_FlowConsumer, TAO_FlowConnection, TAO_FDev. Also added code to the existing A/V classes so that they now behave according to the full profile. Sun Dec 6 00:43:46 1998 Kirthika Parameswaran * examples/POA/On_Demand_Loading/Dir_Service.idl: * examples/POA/On_Demand_Loading/Dir_Service.{h,cpp}: The servant library idl interface and files. * examples/POA/On_Demand_Loading/Servant_Activator.{h,cpp}: This file is the servant_manager activator interface. * examples/POA/On_Demand_Loading/server.cpp: This is the server process. * examples/POA/On_Demand_Loading/client.cpp: This is the client process. * examples/POA/On_Demand_Loading/generic_servant_export.h: Generated and needed for the defining a servant class. * examples/POA/On_Demand_Loading/Makefile.Client: * examples/POA/On_Demand_Loading/Makefile.DirService: * examples/POA/On_Demand_Loading/Makefile: The makefiles needed for the test. Added the above files to the repository. This test example loads an servant library on demand and associates a servant with an object. Sat Dec 5 22:10:13 1998 Nanbor Wang * tao/Typecode.cpp (private_equal_struct,private_equal_except): (private_equal_sequence,private_equal_union,private_equal_union): Changed to the use of TAO_CHECK_CONDITION_ENV_RETURN to TAO_CHECK_ENV_RETURN and then check the condition explicitly. This avoids warnings on some compiler. (typecode_param): Fixed an error. Thanks to David for pointing these out. Fri Dec 04 19:35:56 1998 Nanbor Wang * tao/Typecode.cpp (typecode_param): Moved declaration of loop counter up to avoid a skipping declaration warning from MSVC. * tao/try_macros.h (TAO_TRY_THROW[_EX]): Removed extra spaces in definitions for native exceptions. Fri Dec 4 16:51:16 1998 Nanbor Wang * docs/exceptions.html: Added guidelines on throwing exceptions from within try blocks and using TAO_RETHROW_SAME_ENV_RETURN[_EX]. * tao/try_macros.h: Added TAO_TRY_THROW[_EX] which allow exceptions beting thrown within try blocks be caught. Rename TAO_RETHROW_RETURN[_VOID]_SYS to TAO_RETHROW_SAME_ENV_RETURN[_VOID]. * tao/IIOP_Object.cpp: * tao/Invocation.cpp: Replaced TAO_RETHROW_RETURN[_VOID]_SYS with TAO_RETHROW_SAME_ENV_RETURN[_VOID]. * tao/deep_free.cpp: * tao/Typecode.cpp: Changed to handle exceptions with macros in try_macros.h. Fri Dec 4 16:04:56 1998 Ossama Othman * TAO_IDL/util/utl_global.cpp(IDL_GlobalData constructor): Added support for hardcoding a gperf default path other than $ACE_ROOT/bin/gperf. This works by #defining the ACE_GPERF macro at compile time to be the desired gperf. For example: -DACE_GPERF=\"/usr/local/bin/gperf-ace\" The actual gperf program must be included in the definition of ACE_GPERF, not just the directory in which it is located. Fri Dec 04 12:45:01 1998 David L. Levine * performance-tests/Cubit/TAO/IDL_Cubit/README: added sample of passing the IOR on the command line, on VxWorks. Fri Dec 4 12:28:06 1998 Nanbor Wang * tao/try_macros.h (TAO_TRY_VAR[_EX]): Fixed unreferenced variable warnings on platforms supporting native exceptions. Fri Dec 04 07:38:57 1998 David L. Levine * tao/ORB.cpp (perform_work): copied const ACE_Time_Value arg to a non-const temporary, to pass to handle_events (). Thu Dec 3 22:41:35 1998 Shawn Michael Atkins * performance-tests/Thruput/TAO/README: added info about the perl scripts to the readme file (new_server_test, new_client_test, and new_run_test) * performance-tests/Thruput/TAO/ttcp_decl.h: changed psecs to take in a double instead of a long * performance-tests/Thruput/TAO/utils.cpp: fixing more minor things like things I was using for testing and never reference anymore (taking them out). Thu Dec 3 17:58:32 1998 Douglas C. Schmidt * tao/ORB.h (CORBA_ORB): Changed perform_work() to take a default value of ACE_Time_Value::zero to correspond to the intended semantics of the CORBA spec. Thanks to Steve Vinoski for clarifying this and for Loren Rittle for surfacing the issue in the first place. Thu Dec 03 14:23:03 1998 Nanbor Wang * tao/try_macros.h: Removed macros TAO_TRY_SYS[_EX] TAO_CHECK_ENV_SYS[_EX] and TAO_CATCH_SYS for they are covered by Irfan's TAO_TRY_VAR[_EX]. Thanks to Irfan for reminding this. * docs/exceptions.html: Added guidelines for TAO_TRY_VAR and TAO_TRY_VAR_EX. * tao/IIOP_Object.cpp: * tao/Invocation.cpp: * tao/Typecode.cpp: Replaced the uses to TAO_TRY_SYS and TAO_TRY_SYS_EX with TAO_TRY_VAR and TAO_TRY_VAR_EX. Thu Dec 3 12:37:10 1998 Nanbor Wang * tao/Exception.cpp (make_standard_typecode): Changed the operation name encoded in typecode to "completed". Thu Dec 03 12:33:53 1998 David L. Levine * tao/Makefile: removed DynUnion_i_T from ORBCORE_SRCS, because it just contains template members. Thanks to Ossama for reporting this. Thu Dec 3 11:59:23 1998 Aniruddha Gokhale * TAO_IDL/ast/ast_operation.cpp: Ensured that a oneway operation can never have a "raises" clause. Thanks to Tom Ziomek (tomz@cc.comm.mot.com) for reporting this. * TAO_IDL/util/utl_error.cpp: Improved the error message for EIDL_ILLEGAL_RAISES error code. * TAO_IDL/fe/(idl.yy, y.tab.cpp, y.tab.h}: Ensured that discriminant of type octet inside a union declaration is flagged as an error. The OMG spec does not allow discriminants of type octets. Thu Dec 3 10:31:12 EST 1998 Aniruddha Gokhale * TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ch.cpp TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ch.cpp: We make sure that the upcast and downcast methods are now generated only for CORBA::Object sequences and not for sequences of CORBA::TypeCodes. In the latter case, the upcast and downcast methods are not needed and furthermore, casting them to CORBA::Object_ptr is totally incorrect. Thu Dec 3 07:09:07 1998 Sergio Flores * performance-tests/Cubit/TAO/MT_Cubit/README.tests: Added instructions for utilization test. Thu Dec 03 01:24:41 1998 Irfan Pyarali * tao/try_macros.h: Added TAO_TRY_VAR and TAO_TRY_VAR_EX. These macros are similar to TAO_TRY and TAO_TRY_EX, except that they work with a user specified environment variable instead of creating one for itself. * tao/Object.cpp (_non_existent): Added the use of exception macros to this method. This will make this method work with native exceptions. If the _non_existent() remote call succeeds, it return 0; if CORBA::OBJECT_NOT_EXIST is thrown, it returns 1; and any other (system) exception raised in making the remote call is passed through to the user. Thanks to Sunil Kumar for reporting this. Thu Dec 03 01:00:47 1998 Nanbor Wang * tao/Environment.cpp: * tao/Exception.cpp: * tao/POAC.cpp: * tao/debug.cpp: Changed the uses of "completion ()" to "completed ()". Wed Dec 2 21:56:56 1998 Shawn Michael Atkins * performance-tests/Thruput/TAO/ttcp_decl.h: commented out RtiPackets since I haven't gotten that working yet: Was preventing compilation for anyone but me (the variable isn't defined but in my workspace at the moment). * performance-tests/Thruput/TAO/utils.cpp: fixed minor errors that were preventing compilation on linux. Wed Dec 02 18:33:08 1998 Irfan Pyarali * tao/Exception (completed): The name of the function (both accessor and modifier) should be completed(), not completion(). Thanks to Steve Totten for pointing this out. Wed Dec 2 17:40:54 1998 Shawn Michael Atkins * performance-tests/Thruput/TAO/ttcp_decl.h: forgot to add this along with the changes to utils.cpp. Changed the definition of some of the methods in utils.cpp like prusage. Wed Dec 2 14:26:58 EST 1998 Aniruddha Gokhale * TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ch.cpp TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ch.cpp: The upcast and downcast methods are now generated even for sequences of CORBA::Objects and CORBA::TypeCodes. Thanks to Ron Barack for reporting the problem. Wed Dec 02 11:03:17 1998 David L. Levine * performance-tests/Cubit/TAO/MT_Cubit/Task_Client.cpp: removed a few debugging printouts. Wed Dec 2 09:17:34 EST 1998 Aniruddha Gokhale * TAO_IDL/be/be_helper.cpp (TAO_OutStream::gen_ifdef_AHETI): We were checking if the TAO_LACKS_TEMPLATE_SPECIALIZATION macro is defined or not. Such a macro is not defined anywhere in ACE or TAO. The correct macro to be used here is ACE_HAS_TEMPLATE_SPECIALIZATION. Thanks to Peter Nordlund (petern@nada.kth.se) for noticing this. * TAO_IDL/be/be_visitor_union/union_ci.cpp: In the generated _reset (void) method, we now zero out the underlying union. In some specific cases, without this zeroing out, we were getting segmentation faults. Thanks to Ron Barack (rab@terminal.cz) for reporting the problem and suggesting the fix. * tao/DynAnyC.{h, cpp}: Used ACE_HAS_TEMPLATE_SPECIALIZATION in place of TAO_LACKS_TEMPLATE_SPECIALIZATION. * tao/TypeCode.cpp (private_member_label): Used TAO_CATCHANY_SYS instead of TAO_CATCHANY. The latter was giving "undefined __env" error. * tao/Exception.cpp (item): Used TAO_THROW_ENV_RETURN instead of TAO_THROW_ENV because a return value was expected. Wed Dec 02 03:31:16 1998 Nanbor Wang * tao/try_macros.h: Added TAO_CHECK_CONDITION_ENV_RETURN and TAO_CHECK_CONDITION_ENV_RETURN_VOID macros. These two macros work with TAO's simulated exception by checking the specified CORBA_Exception for exception and also a user specified condition. * CDR.i: * Exception.cpp: * Marshal.i: * Typecode.cpp: * decode.cpp: * deep_free.cpp: Integrated exception handling macros into TAO in order to document the code better and to unify TAO's behavior with or without native exception support. The code got modified according to how it would work with native exception enabled. I don't expect to finish integrating the macros in a short time. Wed Dec 2 01:48:54 1998 Shawn Michael Atkins * performance-tests/Thruput/TAO/utils.cpp: fixed the problem with the displaying of wierd numbers to the screen. utils.cpp now used ACE_Profile_Timer instead of using struct rusage directly. Tue Dec 01 15:32:48 1998 David L. Levine * performance-tests/Cubit/TAO/MT_Cubit/run_test.pl: added -r option to support thread-per-rate test. Tue Dec 1 14:35:51 1998 Carlos O'Ryan * tao/ORB.h: * tao/IIOP_ORB.h: * tao/IIOP_ORB.cpp: * tao/POA.h: * tao/POA.cpp: CORBA::ORB::string_to_object() was taking a argument, but it should be a . Tue Dec 01 13:55:24 1998 Irfan Pyarali * examples/POA/Generic_Servant/client.cpp: Changed to add native exception handling. Tue Dec 1 12:33:50 1998 Chris Gill * orbsvcs/tests/Simulator/DOVEMIB/Makefile orbsvcs/tests/Simulator/Event_Supplier/Makefile: fixed problem with tao_idl invocation in Makefiles, added TAO/orbsvcs/orbsvcs include path switch to flags for tao_idl, modified rules to ensure flags were used as part of rule. Thanks to Joe Loyall for reporting this. Tue Dec 1 10:12:57 1998 Carlos O'Ryan * orbsvcs/orbsvcs/Event/EC_Gateway_UDP.cpp: Use an ACE_INET_Addr in recvfrom(); a plain ACE_Addr produces problems on NT. Thanks to Dave Meyer for reporting this and providing the fix. * tao/Typecode.cpp: The size for a TypeCode field was not computed properly (it should be sizeof(TypeCode_ptr)). * docs/releasenotes/TODO.html: Added the blocking writes task. Tue Dec 01 10:16:02 1998 David L. Levine * TAO version 0.2.42 released. Mon Nov 30 01:10:35 1998 Matt Braun * tests/Param_Test/ub_any_seq.cpp: Added test for const char* and changed sequence length from 1 to 5 because the "random" choice of types was only pseudo-random and the various test types wern't being tested. Currently, the test segfaults, but I believe this to be indicative of a deeper problem. Sun Nov 29 18:09:52 1998 Nanbor Wang * tao/ORB.{h,cpp} (resolve_initial_references): Allows this function to pass back InvalidName exception. (InvalidName): New CORBA::ORB exception type. Sat Nov 28 10:57:54 1998 Nanbor Wang * tao/corba.h: Added TAO_Export to global variable . * tao/Typecode.h (CORBA_TypeCode): Added TAO_Export for Bounds and BadKind excepiton classes. * tao/ORB.{h,cpp} (operator==,operator!=): Added comparison operations for non-native long double. We also need other comparison operators for our long double to work transparently. Thu Nov 26 11:37:23 1998 Nanbor Wang * tao/Invocation.cpp (invoke): Variable must be initialized to avoid g++ warnings. Thu Nov 26 01:08:00 1998 Darrell Brunsch * orbsvcs/ImplRepo_Service/ImplRepo.idl: All methods are now available. * orbsvcs/ImplRepo_Service/Repository.{h,cpp}: Only stores the host/port of the server, not the entire object IOR. This allows the use of more than one object in the same POA. * orbsvcs/ImplRepo_Service/ImplRepo_i.{h,cpp}: Support for all methods and made switch to host/port instead of ior. * orbsvcs/tests/ImplRepo/Repository_Test.cpp: Tests with host/port instead of IOR now. * orbsvcs/ImplRepo_Service/ImplRepo.{dsp,dsw}: Updated the MSVC project files. Mainly cosmetic changes. * orbsvcs/tests/ImplRepo/svc.conf: * orbsvcs/tests/ImplRepo/implrepo.conf: Split the conf files up since IR needs -ORBpoalock null and thread-per-connection, but the tests don't necessarily need it. * orbsvcs/tests/ImplRepo/IR_Helper.{h,cpp}: New helper class that contains the logic for using the IR from a server. * orbsvcs/tests/ImplRepo/Airplane.idl: * orbsvcs/tests/ImplRepo/airplane_client.cpp: * orbsvcs/tests/ImplRepo/airplane_client.dsp: * orbsvcs/tests/ImplRepo/airplane_client_i.cpp: * orbsvcs/tests/ImplRepo/airplane_client_i.h: * orbsvcs/tests/ImplRepo/airplane_i.cpp: * orbsvcs/tests/ImplRepo/airplane_i.h: * orbsvcs/tests/ImplRepo/airplane_server.cpp: * orbsvcs/tests/ImplRepo/airplane_server.dsp: * orbsvcs/tests/ImplRepo/airplane_server_i.cpp: * orbsvcs/tests/ImplRepo/airplane_server_i.h: New Paper Airplane Server! The purpose is to show off the IR_Helper class use and to have a different server to test the IR with. * orbsvcs/tests/ImplRepo/ImplRepo_Test.dsw: Now includes the Paper Airplane Server. * orbsvcs/tests/ImplRepo/run_test.pl: Updated to perform different types of tests. * orbsvcs/tests/ImplRepo/server.dsp: Removed server.h, a file that doesn't exist anymore. * orbsvcs/tests/ImplRepo/server_impl.cpp: Cleaned up a bit. Removed unnecessary code. Wed Nov 25 20:50:55 1998 Irfan Pyarali * tao/Invocation.cpp: The ORB was raising incorrect exceptions when the connection to the server was broken, or if the client was not able to create a new connection to the server. The correct behavior in these (and some other) cases is to raise the TRANSIENT exception; and not raise the COMM_FAILURE exception. TRANSIENT exception indicates that some (all) resources that the client ORB requires to complete the remote method call are unavailable. These resources includes the server ;) COMM_FAILURE exception indicates that a failure happened while the client and server were in the middle of some communication. Thanks to Christa Schwanninger for pointing out this problem, and to Carlos for helping sort the exceptions. Mon Nov 23 17:45:16 1998 Irfan Pyarali * tao/IIOP_Object.cpp (do_static_call): cannot be initialized to zero. Wed Nov 25 18:20:55 1998 Darrell Brunsch * tao/Invocation.cpp: Added a couple of TAO_CHECK_ENV_SYS macros to the check for thrown exceptions. Wed Nov 25 10:26:57 1998 Douglas C. Schmidt * examples/Simple/echo: Reenabled the use of the Naming Service for this example and then fixed the run_tests.pl script to not use them ;-) * tao/TAO.h: Added a clarification on the role of the TAO_ORB_Manager. Thanks to Christian Mueffling for motivating this. * tao/ORB: Added the rudiments of a way to keep track of the "default ORB" using the Singleton pattern. Thanks to Irfan and Carlos for uncovering the need for this, as well as Jon Biggar and Steve Vinoski for verifying this need. Wed Nov 25 00:47:33 1998 Nanbor Wang * tao/Invocation.cpp (invoke): Reordered error handling so handle_close (of client side connection) happens in the right places. * tao/GIOP.cpp (send_error): * tao/Connect.cpp (handle_input): Prevent handle_close from being called in here. Simply return -1 should do the trick. Otherwise, servers may crash when communication errors occur. Tue Nov 24 15:03:19 1998 Nanbor Wang * tao/Invocation.cpp (location_forward): Removed an unused variable. Thanks to David for noticing this. Mon Nov 23 17:09:14 1998 Nanbor Wang * tao/IIOP_Object.cpp (do_static_call): Explicitly initialize to avoid gcc warnings. * tao/try_macros.h: Fixed a typo. Mon Nov 23 07:56:09 1998 Aniruddha Gokhale * tao/try_macros.h: Made enhancements to the macros added by anbor. In particular, we now have TAO_TRY_SYS_EX (LABEL) and TAO_CHECK_ENV_SYS_EX (LABEL) to overcome problems arising out of redefinition of labels. This was happening in IIOP_Object.cpp file * tao/IIOP_Object.cpp: Use TAO_TRY_SYS_EX (LABEL) and TAO_CHECK_ENV_SYS_EX (LABEL) macros to eliminate the multiple label declaration error. Also, Nanbor had forgotten to use the TAO_CHECK_ENV macros to check if an exception was thrown or not. Mon Nov 23 01:20:27 1998 Nanbor Wang * performance-tests/Cubit/TAO/IDL_Cubit/Cubit_Client.h: Changed the default argument of Cubit_Client to not using collocation so the client will not shutdown the server without being asked to do so. * tao/IIOP_Object.cpp (do_static_call): Made the method native exception safe so it will not return prematurely and will try out all the forwarding profiles one by one. * tao/Invocation.cpp (invoke): Make sure all the invoke method doesn't send back GIOP MessageError back to server. They should be taken care of in TAO_GIOP::recv_request. Also made these invoke methods native exception safe so the connections get closed down properly and error messages gets generated as directed. * tao/try_macros.h: Added more "exception" handling macros for TAO's internal use. The motivation is to reuse the CORBA_Environment passed in to TAO's internal function to avoid declaring more env variables and copying exceptions between these variables. * tao/GIOP.{h,cpp}: The following changes are needed to make sure we differentiate receiving a GIOP MessageError from something goes wrong when receiving a request. It also makes sure that the ORB doesn't send out MessageError unnecessarily. (make_error): Removed unused method. (GIOP::MessageType): Added CommunicationError to further classify errors. (send_error): Changed the server type from to because this method is not used by clients only. (recv_request): Made sure the proper error status get returned in various stages. Prevented it from sending sendsuperfluous MessageError back to its party. Only GIOP header receiving errors can trigger that. (parse_header_std): Changed from returning MessageError to -1. If something goes wrong here, it doesn't mean we received a MessageError message. * tao/Connect.cpp (handle_input): Made sure we differentiate the real GIOP MessageError and other cases when errors occur in receiving a request. Also make sure the server won't throw unnecessary exception in any case when receiving requests. Otherwise, the server may crash because of a rogue link. Sun Nov 22 18:20:11 1998 Torben Worm * orbsvcs/orbsvcs/Concurrency/CC_LockSetFactory.cpp: Changed ACE_NEW_RETURN to ACE_NEW_THROW_RETURN in order to support exceptions * orbsvcs/tests/Concurrency/test.basic: Changed the exception to reflect new exception type Sat Nov 21 19:30:11 1998 Nagarajan Surendran * orbsvcs/tests/AVStreams/benchmark/{client,server}.cpp: Added template class, #pragma instantiate for the templates. Thanks to Leif Jakobsmeier" for pointing this out. Sat Nov 21 02:29:00 1998 Marina Spivak * TAO/orbsvcs/tests/Simple_Naming/run-test.pl: modified the script to also run the newly added multithreaded test. * TAO/orbsvcs/tests/Simple_Naming/process-m-output.pl: added perl script to analyze the output of the multithreaded test and print a diagnostic message. * TAO/orbsvcs/tests/Simple_Naming/README: updated file to include new test description. Fri Nov 20 19:07:44 1998 Marina Spivak * TAO/orbsvcs/tests/Simple_Naming/client.{h,cpp}: added two new tests, MT_Test and Loop_Test for multiclient (concurrent) access to the Naming Service. Fri Nov 20 17:46:40 1998 Marina Spivak * tao/Typecode.h: * tao/Typecode.i: * tao/Typecode.cpp: Added locks for changes in the Typecode private state. We use the Double Checked Lock pattern to minimize the run-time cost. Fri Nov 20 07:08:28 1998 David L. Levine * orbsvcs/orbsvcs/Event/Timer_Module.cpp (cancel_timer): changed static_cast to const_cast + reinterpret_cast. * performance-tests/Cubit/TAO/MT_Cubit/client.cpp (output_latency): shortened name of latency_file as much as possible. It appears that VxWorks has a limitation of 100 characters for the full path name to an NFS file. * performance-tests/Cubit/TAO/MT_Cubit/Globals.h: removed -s from force_argv because its no longer used. Fri Nov 20 07:48:54 EST 1998 Aniruddha Gokhale * tao/CDR.{h, i}: Added the missing <<, >> operators for long double. Thu Nov 19 15:12:06 1998 David L. Levine * performance-tests/Cubit/TAO/MT_Cubit/client.cpp (output_latency): changed underscores to dash in output file name. For some reason, underscores confuse rsh/bash, so the output file couldn't be closed. * performance-tests/Cubit/TAO/MT_Cubit/client.cpp (print_latency_stats): fixed printout on VxWorks, it was printing usecs but said that the units were msecs. Also, changed summary output to be in usecs in Unix, for consistency with VxWorks and Chorus. And, it gets rid of the insidious conversion from usec to msec using ACE_ONE_SECOND_IN_MSEC. It works, but it's BAD! * performance-tests/Cubit/TAO/MT_Cubit/Task_Client.cpp (svc): on VxWorks, instead of calling ACE_OS::thr_exit (), call the client Thread_Manager's exit (). That will allow the main thread to determine when all the clients have finished, because it calls wait () on the client Thread_Manager. (get_cubit): removed a couple of printouts that notified of string_to_object () and _narrow () success. * performance-tests/Cubit/TAO/MT_Cubit/summarize: added support for output in either usec or msec. Added 0.5 to floating point inputs, to round instead of truncate. Thu Nov 19 14:51:29 1998 Carlos O'Ryan * TAO_IDL/be/be_visitor_interface/cdr_op_cs.cpp: The CDR insertion and extraction operators for interfaces must be declared inline before we emit the code for the members of the interface. Otherwise code like this: // IDL interface Foo { exception Bar {Foo where_it_failed;}; }; fails on some platforms. Thu Nov 19 10:15:28 1998 Carlos O'Ryan * orbsvcs/orbsvcs/Event/Timer_Module.h: * orbsvcs/orbsvcs/Event/Timer_Module.i: * orbsvcs/orbsvcs/Event/Timer_Module.cpp: * orbsvcs/orbsvcs/Event/Event_Channel.h: * orbsvcs/orbsvcs/Event/Event_Channel.i: * orbsvcs/orbsvcs/Event/Event_Channel.cpp: If the event channel was configured with a reactive Timer_Module the Event_Handler used for timeouts was destroyed with the EC, but could still be registered with the Reactor dispatching the timeouts. The solution was to make the Timer_Module responsible for mapping the Reactor timeouts Event dispatching, in this way the Timer_Module::shutdown() method is able to cancel any timers from the Reactor before getting destroyed. Thanks to Dave Meyer and Russ Noseworthy for pointing this out. * orbsvcs/orbsvcs/Event/Module_Factory.h: Fixed typo in forward declaration. * orbsvcs/Event_Service/Event_Service.cpp: Added an option so we can choose a reactive event service from the command line. * docs/releasenotes/TODO.html: Updated. Wed Nov 18 15:49:52 1998 David L. Levine * tao/ORB_Strategies_T.cpp: added ifndef protection against multiple inclusion. * *.cpp: changed include protection from #if !defined to ifndef. Added #pragma once, if possible, i.e., after #include of an ace/ header. It can only be done after ace/config.h is included, because some platforms don't allow #pragma once. Tue Nov 17 22:00:26 1998 Jeff Parsons * TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_ch.cpp: * TAO_IDL/be/be_visitor_sequence/gen_bounded_sequence_ch.cpp: Just fixed some cosmetic things, like indents. * TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ch.cpp: * TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ch.cpp: * TAO_IDL/be/be_visitor_sequence/gen_bounded_str_sequence_ch.cpp: Added const and non-const get_buffer() methods to generated code Tue Nov 17 21:34:13 1998 Nanbor Wang * orbsvcs/ImplRepo_Service/Makefile: * orbsvcs/tests/ImplRepo/Makefile: New makefiles for UNIX. Notice that the second makefile depends on the first makefile. Tue Nov 17 20:10:41 1998 Jeff Parsons * tao/Sequence.{h,cpp}: Added get_buffer methods (const and non-const) to TAO_Unbounded_String_Sequence. Tue Nov 17 11:28:20 1998 Carlos O'Ryan * tao/decode.cpp: Fixed problems with Any demarshaling, the buffer allocated could be misaligned and sometimes too small. Thanks to Arturo Montes for pointing this out. * orbsvcs/orbsvcs/Event/Dispatching_Modules.i: * orbsvcs/orbsvcs/Event/Dispatching_Modules.cpp: When dispatching events the push() method may raise an exception, it is a oneway but it could raise a CORBA::SystemException. For debugging purpose we print the exception in case it is raised, instead on the uninformative error message it was there. Thanks to J. Russell Noseworthy for pointing this out. * orbsvcs/tests/EC_Multiple/EC_Multiple.cpp: Removed a few problems with invocations through nil references. Tue Nov 17 10:25:25 1998 David L. Levine * performance-tests/Cubit/TAO/MT_Cubit/run_test.pl: removed obsolete client/server -s option. Added support for -l, -n, and -t options to the script, see its usage message for decriptions. Mon Nov 16 20:22:21 1998 Nanbor Wang * performance-tests/Cubit/TAO/MT_Cubit/{server,client}.dsp: Added static Debug/Release version settings. * tao/TAO_Static.dsp: A bunch of files were missing in the static library project. Mon Nov 16 17:54:13 1998 Carlos O'Ryan * orbsvcs/orbsvcs/Event/Event_Channel.cpp: Fixed Subscription_Module::unsubscribe, the consumer was added to the type_subscriber list only when it subscribed with source==0, hence it should be removed from the list in the same circumstances. Also fixed the generation of the observers QoS info (in Consumer_Module::fill_qos), the source only susbscription case was not working properly. Thanks to Thomas Venturella for pointing this out. * orbsvcs/orbsvcs/Event/EC_Gateway.cpp: We also had problems with source only subscriptions here. Thanks to Thomas Venturella for pointing this out. * orbsvcs/tests/EC_Throughput/ECT_Supplier.cpp: Fixed debug message. Sun Nov 15 09:52:14 EST 1998 Aniruddha Gokhale * tao/TypeCode.cpp: Added a default clause to a switch statement in the TypeCode constructor to prevent g++ warnings. Thanks to David Levine for pointing this out to me. * TAO_IDL/ast/ast_module.cpp: Modifications to allow reopening of modules. Thanks to Hamish Friedlander (hamishf@usa.net) for providing this fix. Sat Nov 14 18:31:57 1998 Shawn Michael Atkins * performance-tests/Thruput/TAO/new_run_test: new perl version of the previous shell script (run_test) * performance-tests/Thruput/TAO/new_server_test: new perl version of the previous shell script (run_server) * performance-tests/Thruput/TAO/new_client_test: new perl version of the previous shell script (run_client) Sat Nov 14 14:29:47 1998 Douglas C. Schmidt * TAO version 0.2.41 released. Fri Nov 13 18:26:24 1998 Irfan Pyarali * tao/Typecode_Constants.cpp (init): Qualified CompletionStatus to CORBA::CompletionStatus. Fri Nov 13 16:59:20 EST 1998 Aniruddha Gokhale * TAO_IDL/be/be_visitor_typecode/typecode_defn.cpp: We now generate the size information for the typecodes by passing the compiled time knowledge of the size of the data type and storing it in the typecode. This will (hopefully) solve our problems of trying to calculate the size of complex data structures in an interpreted manner. * tao/Any.cpp tao/DynAnyC.cpp tao/Exception.cpp tao/ORB.cpp tao/Object_KeyC.cpp tao/POAC.cpp tao/TypeCode.{h, cpp} tao/Typecode_Constants.cpp tao/decode.cpp: The TypeCode constructor for complex types now takes an additional parameter which is the size in bytes of the data type. This statically known value is stored in the private_tc_ section of the TypeCode. This will save us the size calculation using the code in IIOP_Interpreter.cpp. Once we have verified that everything works fine, we can start cleaning up the unwanted code from IIOP_Interpreter.* files. Fri Nov 13 15:09:58 1998 David L. Levine * performance-tests/Cubit/TAO/MT_Cubit/Task_Client.cpp (svc): on VxWorks, kill own task when done, to avoid memPartFree during ORB cleanup. * performance-tests/Cubit/TAO/MT_Cubit/client.cpp (main): changed comment to reflect that the memPartFree comes from libTAO, I think. It certainly doesn't come from liborbsvcs, because we no longer link that in to this test. Fri Nov 13 12:41:11 1998 Carlos O'Ryan * TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp: Fixed problems in CDR extraction operator for Octet sequences (compiled marshaling). * performance-tests/Thruput/TAO/run_client: * performance-tests/Thruput/TAO/run_test: Fixed some problems in the debugging messages. * performance-tests/Thruput/TAO/server.cpp: The IOR file was created only if debugging was also enabled! * performance-tests/Thruput/TAO/utils.cpp: * performance-tests/Thruput/TAO/client.cpp: Fixed minor formating problems in the output. 1998-11-13 Pradeep Gore * examples/Simple/chat/README: added explaination about how the IOR is used to locate the chat server. * examples/Event_Comm/Event_Comm_i.h (Notifier): added a missing comment to ShutdownCallback::close. Fri Nov 13 11:51:21 1998 Matthew J Braun * orbsvcs/orbsvcs/Log/Logger_i.cpp: Modified to reuse code a little better Thu Nov 12 23:21:26 1998 Irfan Pyarali * tao/orbconf.h: Native exceptions seem to be working fine. I have restored the TAO_HAS_EXCEPTIONS option in the configuration file. Thanks to Tom Ziomek for bringing this to our attention. Thu Nov 12 17:30:00 1998 Chris Gill * orbsvcs/orbsvcs/Scheduler_Factory.cpp orbsvcs/tests/EC_Custom_Marshal/ECM_Supplier.cpp orbsvcs/tests/EC_Mcast/EC_Mcast.{cpp, h} orbsvcs/tests/EC_Multiple/EC_Multiple.{cpp, h} orbsvcs/tests/EC_Multiple/Scheduler_Runtime1.h orbsvcs/tests/EC_Multiple/Scheduler_Runtime2.h orbsvcs/tests/EC_Multiple/Scheduler_Runtime_Dynamic.h orbsvcs/tests/EC_Throughput/ECT_Supplier.cpp orbsvcs/tests/Event_Latency/Event_Latency.cpp: Fixed stray compiler errors caused by RtecSceduler IDL portability changes. Thu Nov 12 14:21:41 1998 Matthew J Braun * orbsvcs/tests/Logger/README: Made a few edits to reflect added tests for the twoway methods and included sample output * orbsvcs/tests/Logger/Logging_Test_i.cpp: Added tests for new twoway methods log2() and logv2(). * orbsvcs/orbsvcs/Log/Logger_i.cpp: Changed formating of messages for log2() and logv2 (). Thu Nov 12 14:03:00 1998 Chris Gill * orbsvcs/orbsvcs/RtecScheduler.idl orbsvcs/orbsvcs/Runtime_Scheduler.{cpp, h} orbsvcs/orbsvcs/Scheduler_Factory.{cpp, h} orbsvcs/orbsvcs/Scheduler_Utilities.{h, i} orbsvcs/orbsvcs/Event/Dispatching_Modules.{cpp, h, i} orbsvcs/orbsvcs/Event/Event_Channel.{cpp, i} orbsvcs/orbsvcs/Event/RT_Task.cpp orbsvcs/orbsvcs/Event/ReactorTask.{cpp, h} orbsvcs/orbsvcs/Event/Timer_Module.{cpp, h, i} orbsvcs/orbsvcs/Sched/Config_Scheduler.{cpp, h} orbsvcs/orbsvcs/Sched/DynSched.{cpp, h} orbsvcs/orbsvcs/Sched/SchedEntry.{cpp, h} orbsvcs/orbsvcs/Sched/Scheduler.h orbsvcs/orbsvcs/Sched/Strategy_Scheduler.{cpp, h}: Changed RtecScheduler type names to remove non-portable IDL declarations like "Priority priority;" where identifiers only differ by case. Thanks to Martin Renner (Martin.Renner@pp-ulm.de) for pointing out the problem and the appropriate snippet of the CORBA spec. Thu Nov 12 14:01:47 1998 Darrell Brunsch * tao/try_macros.h: Made the native exception macros fit on one line so compilers don't get confused by the "try" by itself. Thanks to Virginie Amar for submitting this fix. Thu Nov 12 07:26:48 1998 David L. Levine * performance-tests/Cubit/TAO/IDL_Cubit/client.cpp: removed code that shouldn't have been put in. Thu Nov 12 00:42:06 1998 Seth Widoff * docs/releasenotes/trader.html: Fixed a typo in the docs: CosTrading::Preferences should read CosTrading::Lookup::Preferences. Thanks to Ivan Leong for detecting this. Wed Nov 11 22:11:32 1998 Kirthika Parameswaran * examples/Callback_Quoter/Consumer_Input_Handler.cpp (register_consumer): added check for carriage return while getting string input. * examples/Callback_Quoter/Consumer.dsp * examples/Callback_Quoter/Notifier.dsp * examples/Callback_Quoter/Supplier.dsp * examples/Callback_Quoter/Callback_Quoter.dsw The Callback_Quoter example project workspace created for Win32 platform users and added to the repository. Wed Nov 11 17:44:10 1998 Darrell Brunsch * tests/NestedUpcall/MT_Client_Test/run_test.pl: * tests/NestedUpcall/Reactor/run_test.pl: * tests/NestedUpcall/Triangle_Test/run_test.pl: * tests/CDR/run_test.pl: * tests/DynAny_Test/run_test.pl: * tests/Multiple_Inheritance/run_test.pl: * tests/OctetSeq/run_test.pl: * tests/Param_Test/run_test.pl: * examples/POA/DSI/run_test.pl: * examples/POA/Default_Servant/run_test.pl: * examples/POA/Explicit_Activation/run_test.pl: * examples/POA/FindPOA/run_test.pl: * examples/POA/NewPOA/run_test.pl: * examples/POA/On_Demand_Activation/run_test.pl: * examples/Simple/echo/run_test.pl: * examples/Simple/grid/run_test.pl: * examples/Simple/time/run_test.pl: * orbsvcs/tests/EC_Basic/run_test.pl: * orbsvcs/tests/EC_Custom_Marshal/run_test.pl: * orbsvcs/tests/EC_Multiple/run_test.pl: * orbsvcs/tests/EC_Throughput/run_test.pl: * orbsvcs/tests/Event_Latency/run_test.pl: * orbsvcs/tests/Logger/run_test.pl: * orbsvcs/tests/Property/run_test.pl: * orbsvcs/tests/Simple_Naming/run_test.pl: General updates, including switching to the ACE class and using .\ or ./ before executable names. Wed Nov 11 14:47:00 1998 Chris Gill * orbsvcs/orbsvcs/Sched/DynSched.{cpp, h} orbsvcs/orbsvcs/Sched/SchedEntry.{cpp, h} orbsvcs/tests/Sched_Conf/Sched_Conf_Anomalies_Runtime.h: Added reporting of specific RT_Info entry points with unresolved local or remote dependencies in the generated schedule header file. Wed Nov 11 14:47:41 1998 David L. Levine * performance-tests/Cubit/TAO/IDL_Cubit/client.cpp,Cubit_Client.cpp: commented out shutdown on VxWorks, until we figure out what causes the memPartFree error. * performance-tests/Cubit/TAO/IDL_Cubit/svc.conf: removed second (redundant) -ORBreactorlock null from Resource_Factory_Service_Object. Wed Nov 11 13:56:15 1998 Aniruddha Gokhale * TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp: Added code so that for octet sequences, we will now be able to use the special optimizations that Carlos has developed. We generate this code enclosed in #if defined (TAO_NO_COPY_SEQUENCES) macros. Tue Nov 10 22:37:55 1998 Douglas C. Schmidt * TAO version 0.2.40 released. Tue Nov 10 17:53:42 1998 Matthew J Braun * orbsvcs/orbsvcs/Log/Logger_i.h * orbsvcs/orbsvcs/Log/Logger_i.cpp * orbsvcs/orbsvcs/Logger.idl Added new methods log2() and logv2(). They are twoway versions of the preexisting log() and logv() methods. Thanks to Sigg Pascal for reporting this. Tue Nov 10 13:12:48 1998 Chris Gill * orbsvcs/Dump_Schedule/Dump_Schedule.cpp orbsvcs/orbsvcs/Scheduler_Factory.cpp orbsvcs/orbsvcs/Sched/Config_Scheduler.cpp orbsvcs/orbsvcs/Sched/DynSched.cpp orbsvcs/tests/EC_Multiple/EC_Multiple.cpp: Fixed compilation errors and warnings from g++, Sun C++ for scheduling anomaly features. Mon Nov 9 23:47:02 1998 Kirthika Parameswaran * examples/Callback_Quoter/Notifier_i.cpp examples/Callback_Quoter/Notifier_i.h examples/Callback_Quoter/Notifier_Input_Handler.cpp examples/Callback_Quoter/Notifier_Input_Handler.h examples/Callback_Quoter/Consumer_Input_Handler.cpp examples/Callback_Quoter/Consumer_Input_Handler.h examples/Callback_Quoter/Consumer_Signal_Handler.cpp examples/Callback_Quoter/Consumer_Signal_Handler.h examples/Callback_Quoter/Consumer_Handler.cpp examples/Callback_Quoter/Consumer_Handler.h examples/Callback_Quoter/Supplier_Signal_Handler.cpp examples/Callback_Quoter/Supplier_Signal_Handler.h examples/Callback_Quoter/Supplier_i.cpp examples/Callback_Quoter/Supplier_i.h examples/Callback_Quoter/supplier.cpp examples/Callback_Quoter/consumer.cpp examples/Callback_Quoter/notifier.cpp examples/Callback_Quoter/README All the above files are added. This version is a working Callback_Quoter example. Mon Nov 09 23:06:55 1998 David L. Levine * BUG-REPORT-FORM: added phase (compilation/linking/execution/other), and ACE+TAO/application/both. Mon Nov 9 19:29:38 1998 Nanbor Wang * tao/ORB.h (CORBA::ExceptionType): Swapped the enum definition order of USER_EXCEPTION and SYSTEM_EXCEPTION so it complies with the CORBA spec. * tao/GIOP.h (TAO_GIOP_ReplyStatusType): Swapped the enum definition order of TAO_GIOP_USER_EXCEPTION and TAO_GIOP_SYSTEM_EXCEPTION so it complies with the CORBA spec. Thanks very much for Bob Price for noticing this and send us the bug report. Mon Nov 09 18:12:48 1998 Chris Gill * orbsvcs/orbsvcs/RtecScheduler.idl orbsvcs/orbsvcs/Runtime_Scheduler.{cpp, h} orbsvcs/orbsvcs/Scheduler_Factory.{cpp, h} orbsvcs/orbsvcs/Sched/Config_Scheduler.{cpp, h} orbsvcs/orbsvcs/Sched/DynSched.{cpp, h} orbsvcs/orbsvcs/Sched/SchedEntry.{cpp, h, i} orbsvcs/orbsvcs/Sched/Scheduler.h orbsvcs/orbsvcs/Sched/Scheduler_Generic.{cpp, h} orbsvcs/orbsvcs/Sched/Strategy_Scheduler.{cpp, h}: Implemented anomaly recording in the strategized scheduler so all warning and error level scheduling anomalies can be propagated to generated runtime header file without halting the scheduler (except for a fatal anomaly). Thanks to Tom Venturella for suggesting this. * orbsvcs/tests/Sched_Conf/Sched_Conf.{cpp, dsw} orbsvcs/tests/Sched_Conf/Sched_Conf_Anomalies.{cpp, dsp} orbsvcs/tests/Sched_Conf/Sched_Conf_Anomalies_Runtime.h orbsvcs/tests/Sched_Conf/Sched_Conf_Runtime.h: modified tests to validate anomaly logging and scheduler. Mon Nov 09 14:12:48 1998 Nanbor Wang * orbsvcs/tests/Simple_Naming/client.cpp (init): * examples/Quoter/Quoter_i.cpp (copy): * tests/Param_Test/ub_objref_seq.cpp (check_validity): * tests/Param_Test/except.cpp (run_sii_test): * orbsvcs/orbsvcs/Property/CosPropertyService_i.cpp (create_initial_propertysetdef): (create_constrained_propertysetdef): (create_initial_propertyset): (create_constrained_propertyset): Changed to use TAO_ENDTRY_RETURN. * tao/try_macros.h (TAO_ENDTRY_RETURN): Added a new macro 'TAO_ENDTRY_RETURN(X)' to avoid compilation errors when a return statement goes right after the TAO_ENDTRY macro. Thanks to David for pointing this out. Mon Nov 9 13:04:56 1998 Kirthika Parameswaran * examples/Callback_Quoter/Consumer_Input_Handler.cpp (handle_input): added TAO try macro exceptions. Sun Nov 8 15:59:07 1998 Kirthika Parameswaran * examples/Callback_Quoter/Notifier_Input_Handler.cpp (handle_input): Rectified an parse error due to an arbitary symbol ' in this method. Mon Nov 09 09:59:45 1998 David L. Levine * orbsvcs/orbsvcs/Property/CosPropertyService_i.cpp: changed some ACE_NOTREACHED (return 0) statements to return 0, if TAO_HAS_EXCEPTIONS is _not_ defined. There's got to be a better way. 1998-11-08 Pradeep Gore * examples/Event_Comm/Event_Comm.idl: Added exceptions CannotSubscribe and CannotUnSubscribe. * examples/Event_Comm/Event_Comm_i.h: Modified ACE_Map_Manager, ACE_Map_Iterator and ACE_Map_Entry to use Consumer_ptr. Added the ShutdownCallback helper class. * examples/Event_Comm/Event_Comm_i.cpp: Made changes to Notifier_i to use Consumer_ptr instead of the previous "marker" for Orbix. Added a warning message for platforms (e.g. Win32) that do not support regular expression functions such as compile and step. Added explicit template instantiation code for the egcs compiler. * examples/Event_Comm/Notifier_Server.h: Added this new file. * examples/Event_Comm/Notifier_Server.cpp: Added this new file. * examples/Event_Comm/Notifier.cpp: Uses Notifier_Server class. * examples/Event_Comm/consumer.cpp: Class consumer now derives from ACE_Event_Handler and implements the ShutdownCallback. * examples/Event_Comm/Consumer_Handler.h: Added the following methods - int init (int argc, char *argv[], ShutdownCallback *_shutdowncallback); int run (void); void close (void); void shutdown (void); ACE_Reactor *reactor (void); int get_notifier (void); data members - Consumer_i receiver_i_; Event_Comm::Consumer_var receiver_; Event_Comm::Notifier_var notifier_; TAO_Naming_Client naming_services_client_; * examples/Event_Comm/Consumer_Handler.cpp: Uses the naming service to get hold of the Notifier object instead of using an IOR. * examples/Event_Comm/Consumer_Input_Handler.h: Class Consumer_Input_Handler derives from ACE_Event_Handler. * examples/Event_Comm/Consumer_Input_Handler.cpp: handle_input calls Consumer_Handler::shutdown to initiate a shutdown on the "quit" command. Uses register_stdin_handler and remove_stdin_handler to register the input handler. * examples/Event_Comm/supplier.cpp: Class Supplier derives from ACE_Event_Handler and implements ShutdownCallback. * examples/Event_Comm/Supplier_Input_Handler.h: Derives from ACE_Event_Handler. * examples/Event_Comm/Supplier_Input_Handler.cpp:handle_input calls Supplier_Handler::shutdown to initiate a shutdown on the "quit" command. * Makefile: detects if the g++ compiler version is lesser than 2.8.0 and if so, prints a warning message. Sun Nov 08 14:55:53 1998 Irfan Pyarali * tao/orbconf.h: Please uncomment TAO_HAS_EXCEPTIONS and TAO_USE_EXCEPTIONS once exceptions are working in TAO. For now, they are not working properly. * tao/Object_Table.cpp (find): Fixed the find routine. It was considering the is_free_ field in all cases, but this field is not used when the dynamic hashing mechanism is used. * tao/orbconf.h: Please uncomment TAO_HAS_EXCEPTIONS and TAO_USE_EXCEPTIONS once exceptions are working in TAO. For now, they are not working properly. * tao/Object_Table.cpp (find): Fixed the find routine. It was considering the is_free_ field in all cases, but this field is not used when the dynamic hashing mechanism is used. Fri Nov 6 19:11:39 1998 Kirthika Parameswaran * examples/Callback_Quoter/Notifier_i.cpp: Added exceptions handling to methods: register_callback, unregister_callback, market_status. Fri Nov 6 17:09:52 1998 Nagarajan Surendran * orbsvcs/tests/AVStreams/mpeg/mpeg_shared/MMDevice_Exporter.idl: The new idl defining the wrapper interface for exporting both Audio and Video MMDevices. Fri Nov 06 10:59:43 1998 David L. Levine * VERSION: added reference to BUG-REPORT-FORM. Thanks to Peter Nordlund for provided the new text. Thu Nov 5 23:46:42 1998 Kirthika Parameswaran * examples/Callback_Quoter/README (TIP): Just added a line telling the users about the format for the input file of the supplier market daemon. Thu Nov 05 15:52:50 1998 Irfan Pyarali * tao/Object_Table.cpp (find): Added a check for is_free in the find algorithm. Thanks to Frank Patz for sending the bug report. Thu Nov 05 04:03:01 1998 Nanbor Wang * tao/ORB.cpp (multicast_to_service): Make sure that the multicast sockets are closed properly no matter how the function exits. Thanks to Achim Stindt for reporting this. Wed Nov 04 22:46:00 1998 Irfan Pyarali * tao/Operation_Table.cpp: Added a timeprobe table. Wed Nov 4 15:31:29 1998 Darrell Brunsch * tao/IIOP_Object.h: Added TAO_Export to Profile so I can use it in the Implementation Repository. * orbsvcs/ImplRepo_Service/*: The Implementation Repository (which now supports DSI and Ping Objects) has been moved here. * orbsvcs/tests/ImplRepo/*: Updated the test to check DSI and the Ping Object, and also added a test for just the Repository class in ImplRepo_Service. Tue Nov 3 21:02:30 1998 Kirthika Parameswaran * examples/Callback_Quoter/Supplier_Timer_Handler.cpp Added a change to Consumer_Input_Handler::quit_consumer_process by which the consumer exits gracefully even on a communication failure with the notifier. Also, this is a working version of the Callback Quoter example. Tue Nov 3 19:57:03 1998 Kirthika Parameswaran * examples/Callback_Quoter/README: Added this file which explains the Callback Quoter example and the way the execute it. Tue Nov 3 17:14:35 1998 Yamuna Krishnamurthy * orbsvcs/tests/AVStreams/server_discovery/Trader_Client.{h,cpp}: Bind to the mpeg client receiver to push the audio and video device references to the AV mpeg client in load_movie (). The references to the audio and video mmdevice are obtained from the mmdevice exporter through the trading service. Added code to hash the MMDevice_Exporter reference. * orbsvcs/tests/AVStreams/server_discovery/Server_Discovery.cpp: Change the method names corresponding to the names generated in the Server_0005fDiscovery_0005fUtil.h.Declare the jobject array server_names as a class member and not within the get_server method. Initilaize the _movie_class in the get_movie_info method before allocation of buffer. Added code in load_movie (). * orbsvcs/tests/AVStreams/server_discovery/Server_Discovery_Selection.java: Changed the way the movie tree was created and accessed. Do an updateUI() on the table to display it. * orbsvcs/tests/AVStreams/server_discovery/Server_Discovery_Util.java: Change the second parameter passed to load_movie() from movie_name of String type to movie of Movie class type to pass the movie info * orbsvcs/tests/AVStreams/mpeg/source/server/augmented_server.{h,cpp}: Write a wrapper MMDevice_Exporter to export the audio and video references and the machine and movie info properties.Add AV_Video_MMDevice and AV_Audio_MMDevice. * orbsvcs/tests/AVStreams/mpeg/source/server/Video_Repository.idl: Replace the member filename_ with audio_filename_ and video_filename_. Tue Nov 3 16:10:49 1998 Douglas C. Schmidt * docs/configurations.html: The macro TAO_USE_DOTTED_DECIMAL_ADDRESSES was given as TAO_USES_DOTTED_DECIMAL_ADDRESES in docs/configuration.html. Thanks to Byron Harris for reporting this! Tue Nov 3 14:39:05 1998 Nagarajan Surendran * orbsvcs/tests/AVStreams/mpeg/mpeg_shared/Receiver.idl: Added a video object reference and video file parameters to the push_mmdevice method in the Receiver interface. * orbsvcs/tests/AVStreams/mpeg/mpeg_client/Command_Handler.{h,cpp}: Changed the implementation of the Receiver interface to implement code for the video reference and videofile parameters to push_mmdevice method. Mon Nov 2 17:57:23 1998 Nanbor Wang * performance-tests/Cubit/TAO/IDL_Cubit/Cubit_Client.{h,cpp}: * performance-tests/Cubit/TAO/IDL_Cubit/collocation_test.cpp Make sure the client instructs the server to shutdown no matter we are using the collocation optimization or not. * performance-tests/Demux/demux_test_client.cpp (run_linear_test, run_random_test, run_worst_test, run_best_test): Win32 doesn't support conversion from unsigned __int64 to double directly. Therefore, we must use the ACE_UINT64_DBLCAST_ADAPTER to convert it to __int64 first. In this case, it'll be safer if we do the substraction first before multiplying the constant factor. * performance-tests/Demux/{server,client}.cpp (main): Added trailing return statements to avoid warnings from VC 6. * performance-tests/Demux/Demux.dsw: * performance-tests/Demux/{server,client}.dsp: * performance-tests/Demux/CodeGen/CodeGen.dsp: New project/workspace files. * performance-tests/Demux/demux_test_client.cpp (run_random_test): Replaced srand48 () and lrand48 () with ACE_OS::srand () and ACE_OS::rand (). * performance-tests/Demux/demux_test_server.cpp (~Demux_Test_Server): Removed unreferenced local variables. * performance-tests/Demux/CodeGen/client.cpp (gen_client_incl_code): This function should return a value. * performance-tests/Demux/CodeGen/gen_names.cpp (is_present): Fixed a syntax error. (gen_rand): Changed lrand48 () to ACE_OS::rand (). * performance-tests/Demux/CodeGen/codegen.h: Removed inclusion of and . They caused conflicts with standard C++ library and should be included by ACE's header files. 1998-11-02 Kirthika Parameswaran * examples/Callback_Quoter/Supplier_Timer_Handler.h: * examples/Callback_Quoter/Supplier_Timer_Handler.cpp: Added these files, for implementing the timer handler for the supplier. Sun Nov 01 19:53:15 1998 Irfan Pyarali * tao/TAO.h (TAO_ORB_Manager::run): Added default environment to this method. Thanks to Terry Rosenbaum for suggesting this. Sun Nov 01 09:03:40 1998 Douglas C. Schmidt * TAO version 0.2.39 released. Sun Nov 01 08:24:19 1998 David L. Levine * performance-tests/Cubit/TAO/MT_Cubit/Task_Client.cpp (calc_delta): removed fabs wrap of real_time with ACE_LACKS_FLOATING_POINT, because real_time is unsigned on those platforms. GHS complained about useless check for < 0. (do_test): changed sleep_time - delta < 0 check to sleep_time < delta, because GHS 1.8.8 complained (improperly) that sleep_time - delta could never be less than 0. * performance-tests/Cubit/TAO/MT_Cubit/Task_Client.h: removed fabs () #define with ACE_LACKS_FLOATING_POINT, because it's no longer used. Sat Oct 31 17:49:18 1998 Douglas C. Schmidt * TAO version 0.2.38 released. Sat Oct 31 17:14:49 1998 Douglas C. Schmidt * performance-tests/Demux/CodeGen/gen_names.cpp: Cleaned up the code a little bit and fixed a problem with ACE_CString -- it was being passed the address of a character, which really confused it! Thanks to Vishal for chasing this down. Sat Oct 31 13:03:58 1998 David L. Levine * tao/CDR.i (operator<<): removed some return statements so that returns at end of functions don't need to be wrapped with ACE_NOTREACHED. That seems to be the only way to keep both GHS and DEC cxx happy. Sat Oct 31 01:49:06 1998 Nanbor Wang * performance-tests/Cubit/TAO/IDL_Cubit/collocation_test.cpp (main): Added check for argv[0] to determine whether to use collocation optimization or not. Fri Oct 30 23:04:20 1998 David L. Levine * examples/Callback_Quoter/Consumer_Handler.h (reactor_used): removed superfluous class name qualification. * orbsvcs/orbsvcs/Trader/Service_Type_Repository.cpp (add_type): added ACE_UNUSED_ARG (inc_num). With native exceptions enabled, it's never used, because it's a default return value. Fri Oct 30 15:21:52 1998 Nanbor Wang * performance_tests/Cubit/TAO/IDL_Cubit/collocation_test.cpp: * performance-tests/Cubit/TAO/IDL_Cubit/Cubit_Client.{h,cpp}: Fixed the collocation test. It was broken when we stop using Naming Service with the test. Also, separate out the shutdown_server method out since it needs to do more than an ordinary shutdown call to the server when we are testing the collocation. Notice that Irfan is currently fixing this and in the future, we'll no longer need to treat collocated object specially. Fri Oct 30 15:10:16 EST 1998 Aniruddha Gokhale * performance_tests/Demux/CodeGen Made modifications such that a new method called shutdown is always generated for every interface. This method will be called to shutdown the ORB on the server side. In addition, we now generate the poa-names.dat file with a POA depth appaneded to it. Thus we shall have names like poa_names_1.dat. This will enable us to create many executables at the same time. Otherwise, everytime we ran the demux executable, we were overwriting this file. In the servant implementation, for the shutdown mehtod, we call the shutdown on the ORB. Affected files are: codegen.cpp codegen.h gen_names.cpp idl.cpp servant_impl.cpp * performance_tests/Demux/demux_test_client.cpp The client now invokes the shutdown method on the very first obj reference it holds. This will enable the ORB shutting down on the other side. Fri Oct 30 13:50:21 1998 David L. Levine * TAO_IDL/be/be_visitor_array/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 (operator <<=): removed "return 0" in TAO_TRY block in generated code, and therefore the ACE_NOTREACHED wrapper around the "return 0" at the end of the function. Thanks to Carlos for suggesting this simplification. Fri Oct 30 09:35:05 1998 Douglas C. Schmidt * tao/orbconf.h: Changed TAO_USE_EXCEPTIONS to TAO_HAS_EXCEPTIONS to be consistent with ACE_HAS_EXCEPTIONS. Thanks to Terry.Rosenbaum@Radiology.MSU.edu for suggesting this. Thu Oct 29 18:19:55 1998 Douglas C. Schmidt * TAO version 0.2.37 released. Thu Oct 29 18:02:36 1998 Darrell Brunsch * TAO-INSTALL.html: Added a comment about enabling native exceptions with TAO. Thu Oct 29 16:25:50 1998 Carlos O'Ryan * TAO_IDL/Makefile: * TAO_IDL/be/be_visitor_interface_fwd/cdr_op_ci.cpp: * TAO_IDL/be_include/be_visitor_interface_fwd/cdr_op_ci.h: A forward declaration of an interface also generates the forward declaration of its << and >> operators. * TAO_IDL/be_include/be_visitor_interface_fwd.h: * TAO_IDL/be_include/be_interface_fwd.h: * TAO_IDL/be_include/be_decl.h: * TAO_IDL/be_include/be_codegen.h: * TAO_IDL/be/be_visitor_root/root.cpp: * TAO_IDL/be/be_visitor_root/cdr_op.cpp: * TAO_IDL/be/be_visitor_module/module.cpp: * TAO_IDL/be/be_visitor_interface/cdr_op_ch.cpp: * TAO_IDL/be/be_visitor_interface/cdr_op_cs.cpp: * TAO_IDL/be/be_visitor_scope.cpp: * TAO_IDL/be/be_visitor_interface_fwd.cpp: * TAO_IDL/be/be_visitor_factory.cpp: * TAO_IDL/be/be_decl.cpp: Some cleanup and added support for the new additions above. Thu Oct 29 07:49:51 1998 David L. Levine * tao/DynUnion_i.cpp: added a bunch of .in () dereferences so that it will compile with g++. * TAO_IDL/Makefile: strip $(CXX) to avoid odd behavior if had trailing whitespace. Thanks to Steve Kay for providing the test case :-) * performance-tests/Cubit/TAO/MT_Cubit/summarize: reverted to prior version, to use microsecond scaling. * performance-tests/Cubit/TAO/MT_Cubit/plot: support floating point numbers. Wed Oct 28 22:22:44 1998 David L. Levine * orbsvcs/orbsvcs/Naming/CosNaming_i.cpp (new_context): removed return statement in TAO_TRY block so that final return statement will be reached, if an exception isn't thrown. This avoids a cxx warning that the last statement is unreachable. * TAO_IDL/be/be_visitor_enum/any_op_cs.cpp (visit_enum): removed ACE_NOTREACHED wrapper fron final return statement, because it's reachable. Wed Oct 28 21:47:32 1998 Jeff Parsons * TAO_IDL/be/be_visitor_enum/any_op_cs.cpp: * TAO_IDL/be/be_visitor_structure/any_op_cs.cpp: * TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp: * TAO_IDL/be/be_visitor_union/any_op_cs.cpp: Fixed <<= operators (copying version) to be leak-free and consistent (now all use ACE_NEW and return immediately if it fails). Wed Oct 28 20:44:27 1998 Jeff Parsons * tao/Any.cpp: Modified >>= (to_string) to get rid of a leak found with Purify. * tao/DynAnyC.h: * tao/POA_CORBA.h: Added 'TAO_Export' to some classes I missed. * tao/DynAny_i.cpp: * tao/DynArray_i.cpp: * tao/DynEnum_i.cpp: * tao/DynSequence_i.cpp: * tao/DynStruct_i.cpp: * tao/DynUnion_i.cpp: Fixed memory leaks. * TAO/tests/DynAny_Test/data.cpp: * TAO/tests/DynAny_Test/test_dynany.{h,cpp}: * TAO/tests/DynAny_Test/test_dynarray.{h,cpp}: * TAO/tests/DynAny_Test/test_dynenum.{h,cpp}: * TAO/tests/DynAny_Test/test_dynsequence.{h,cpp}: * TAO/tests/DynAny_Test/test_dynstruct.{h,cpp}: * TAO/tests/DynAny_Test/test_dynunion.{h,cpp}: Cleaned up dependencies, fixed leaks and added a few more test cases. Wed Oct 28 07:35:20 1998 Alexander Babu Arulanthu * TAO_IDL/util/utl_global.cpp (validate_included_idl_files): Fixed the g++ warning. Thanks to David Levine for letting me know this. Wed Oct 28 00:09:52 1998 Alexander Babu Arulanthu * TAO_IDL/be/be_codegen.cpp: * TAO_IDL/include/idl_global.h: * TAO_IDL/driver/drv_preproc.cpp: * TAO_IDL/util/utl_global.cpp (validate_included_idl_files): Fixed the problem with generating #include statements for #include'd idl files. Tue Oct 27 22:46:18 1998 Kirthika Parameswaran * examples/Callback_Quoter/Notifier_i.cpp (shutdown): removed all the iterating sequence through the Hash map. Sun Oct 25 16:13:52 1998 Kirthika Parameswaran * examples/Callback_Quoter/ Consumer_Input_Handler.cpp (unregister_consumer): -made changes to reinitialize variable unregistered_. Consumer_Signal_Handler.h Consumer_Input_Handler -added friend class ShutupPlusPlus to stop g++ from cribbing about having a private destructor and no friend methods. Tue Oct 27 22:22:05 1998 David L. Levine * TAO version 0.2.36 released. Tue Oct 27 12:53:05 1998 Nagarajan Surendran * orbsvcs/orbsvcs/AV/AVStreams_i.{h,cpp} : * orbsvcs/orbsvcs/AV/Endpoint_Strategy.cpp: * orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.cpp: Fixed a few g++ warnings and added code to work properly with property service. Tue Oct 27 08:39:38 1998 David L. Levine * orbsvcs/orbsvcs/Property/CosPropertyService_i.cpp: wrapped some final return 0 statements with ACE_NOTREACHED. * orbsvcs/tests/Simple_Naming/client.cpp (init): wrapped final return 0 statement with ACE_NOTREACHED. * examples/Quoter/Quoter_i.cpp (copy): wrapped final return 0 statement with ACE_NOTREACHED. * tests/Param_Test/ub_objref_seq.cpp (check_validity): wrapped final return 0 statement with ACE_NOTREACHED. * tests/Param_Test/except.cpp (run_sii_test): wrapped final return 0 statement with ACE_NOTREACHED. * TAO_IDL/driver/drv_preproc.cpp: reverted to version 1.29 because 1.30 doesn't work. Tue Oct 27 06:00:38 1998 Douglas C. Schmidt * TAO version 0.2.35 released. 1998-10-26 Seth Widoff * orbsvcs/orbsvcs/Trader/Trader_Interfaces.cpp: * orbsvcs/orbsvcs/Trader/Trader_Utils.cpp: * orbsvcs/tests/Trading/colocated_test.cpp: In an effort to be efficient, in certain methods I was stealing sequence buffers from 'in' parameters that would have otherwise needed to have been copied. However, this doesn't work in the colocated case, since those 'in' parameters are passed directly rather than copied over the wire. This was causing the the trader's colocated_test to fail. Thanks to Jim Penny for reporting this. Mon Oct 26 18:53:49 1998 Jeff Parsons * TAO/performance-tests/Cubit/TAO/IDL_Cubit/README: * TAO/performance-tests/Cubit/TAO/DII_Cubit/README: Oops, forgot to update the README files pertaining to the checkin below. Mon Oct 26 18:40:03 1998 Jeff Parsons * TAO/performance-tests/Cubit/TAO/IDL_Cubit/Cubit_Server.cpp: * TAO/performance-tests/Cubit/TAO/DII_Cubit/client.cpp: * TAO/performance-tests/Cubit/TAO/IDL_Cubit/run_test.pl: Fixed a bug reported in the DII Cubit test. Removed -s option from server (harmful), also from client (not harmful but useless) and removed these args from the perl file. Thanks to Jim Penny for reporting this. Also fixed a typo in the perl file (thanks, Carlos). Mon Oct 26 18:28:36 1998 Carlos O'Ryan * Updated dependencies for all the Makefiles. Mon Oct 26 16:01:27 1998 Douglas C. Schmidt * tests/DynAny_Test: Made the run_tests.pl script have 755 permission. Thanks to Jim Penny for reporting this. Mon Oct 26 14:22:18 1998 Matthew J Braun * examples/POA/DSI/README * examples/POA/DSI/run_test.pl * examples/POA/DSI/server.cpp * examples/POA/DSI/client.cpp * tests/Multiple_Inheritance/run_test.pl * tests/Multiple_Inheritance/server.cpp * tests/Multiple_Inheritance/client.cpp Fixed command line arguments to conform to Irfan's specifications. Mon Oct 26 12:01:30 1998 David L. Levine * TAO_IDL/be/be_visitor_union/any_op_cs.cpp: * TAO_IDL/be/be_visitor_array/any_op_cs.cpp: * TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp: * TAO_IDL/be/be_visitor_exception/any_op_cs.cpp: * TAO_IDL/be/be_visitor_enum/any_op_cs.cpp: * TAO_IDL/be/be_visitor_structure/any_op_cs.cpp: * TAO_IDL/be/be_visitor_interface/any_op_cs.cpp: Replaced the final "return 0;", because other compilers, such as g++, warned without it. But now, it's wrapped with ACE_NOTREACHED. Mon Oct 26 09:57:29 1998 Carlos O'Ryan * TAO_IDL/be/be_visitor_union/any_op_cs.cpp: * TAO_IDL/be/be_visitor_array/any_op_cs.cpp: * TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp: * TAO_IDL/be/be_visitor_exception/any_op_cs.cpp: * TAO_IDL/be/be_visitor_enum/any_op_cs.cpp: * TAO_IDL/be/be_visitor_structure/any_op_cs.cpp: * TAO_IDL/be/be_visitor_interface/any_op_cs.cpp: Removed a redundant "return 0;" found on each >>= operator. This was causing nasty warnings in some compilers. Mon Oct 26 09:34:32 1998 Alexander Babu Arulanthu * TAO_IDL/driver/drv_preproc.cpp (DRV_pre_proc): While scanning for #include'd idl file, we should also look for other than "file.idl". Thanks to "John Geiss" for reporting this problem. Mon Oct 26 00:05:54 1998 Irfan Pyarali * tao/ORB.cpp (multicast_to_service): Changed htons to ACE_HTONS. This change allows TAO to have reduced dependencies to system libraries. Thanks to Paul K. Fisher for suggesting this change. Mon Oct 26 00:03:44 1998 Douglas C. Schmidt * TAO version 0.2.34 released. Sun Oct 25 20:26:59 1998 Jeff Parsons * tao/DynArray_i.cpp: * tao/DynSequence_i.cpp: * tao/DynStruct_i.cpp: * tao/DynUnion_i.cpp: * TAO/tests/DynAny_Test/test_dynany.cpp: * TAO/tests/DynAny_Test/test_dynarray.cpp: * TAO/tests/DynAny_Test/test_dynenum.cpp: * TAO/tests/DynAny_Test/test_dynsequence.cpp: * TAO/tests/DynAny_Test/test_dynstruct.cpp: * TAO/tests/DynAny_Test/test_dynunion.cpp: Fixed some memory leaks - the ones that are left are all similar, but I'm not sure how to approach it yet. Sun Oct 25 16:12:16 1998 Darrell Brunsch * TAO/examples/Simple/time/README: Rearranged and cleared up some explanations of the options. Sun Oct 25 15:24:14 1998 Jeff Parsons * TAO/tests/DynAny_Test/run_test.pl Perl script to run one or all of the tests. Thanks to Darrell for example file to cut and paste from, as well as help getting Corrido set up correctly. Sun Oct 25 13:30:49 1998 Jeff Parsons * TAO/tests/DynAny_Test/Makefile: * TAO/tests/DynAny_Test/README: Added Makefile and updated README. Sun Oct 25 12:45:17 1998 Jeff Parsons * TAO/tests/DynAny_Test/driver.{h,cpp}: * TAO/tests/DynAny_Test/data.cpp: Just some minor changes to avoid CC and g++ warnings. Sat Oct 24 23:56:45 1998 Kirthika Parameswaran * examples/Callback_Quoter/ added files: Consumer_Handler.h Consumer_Handler.cpp Consumer_Signal_Handler.h Consumer_Signal_Handler.cpp Consumer_Handler creates the Consumer_Input_Handler and the Consumer_Signal_Handler objects which are derived from ACE_Event_Handler for managing events of input and signal type. Sat Oct 24 14:51:29 1998 David L. Levine * orbsvcs/tests/EC_Custom_Marshal/ECM_Supplier.cpp (supplier_task): wrapped shift of "byte_order" with CORBA::Any::from_boolean (), because egcs 1.1b complained about ambiguous overload resolution. Thanks to Carlos for this solution. * orbsvcs/tests/EC_Custom_Marshal/run_tests.pl: specify full path to executables. That way, users don't need to have . in their path. Fri Oct 23 18:45:43 1998 Irfan Pyarali * examples/POA: ACE_wrappers/TAO/examples/POA/DSI/client.dsp ACE_wrappers/TAO/examples/POA/DSI/server.dsp ACE_wrappers/TAO/examples/POA/Default_Servant/client.dsp ACE_wrappers/TAO/examples/POA/Default_Servant/server.dsp: Updated project files with the new IDL compiler location and new bin/DLL directory location. ACE_wrappers/TAO/examples/POA/DSI/server.cpp: Fixed signed/unsigned problem. Thanks to John Morey for reporting them. Fri Oct 23 18:23:07 1998 Kirthika Parameswaran * examples/Simple/echo/README (Options): Added explanation regarding ior. Fri Oct 23 17:54:16 1998 Jeff Parsons * Tao/tests/DynAny_Test/test_dynsequence.cpp: Fixed a typo that was giving a false error. Fri Oct 23 16:31:50 1998 Jeff Parsons * TAO/tests/DynAny_Test/da_tests.idl: Removed da_tests.pidl and added above (same file). My mistake. Fri Oct 23 15:54:13 1998 Jeff Parsons * TAO/tests/DynAny_Test/data.{h,cpp}; * TAO/tests/DynAny_Test/driver.{h,cpp}; * TAO/tests/DynAny_Test/test_dynany.{h,cpp}; * TAO/tests/DynAny_Test/test_dynarray.{h,cpp}; * TAO/tests/DynAny_Test/test_dynenum.{h,cpp}; * TAO/tests/DynAny_Test/test_dynsequence.{h,cpp}; * TAO/tests/DynAny_Test/test_dynstruct.{h,cpp}; * TAO/tests/DynAny_Test/test_dynunion.{h,cpp}; * TAO/tests/DynAny_Test/test_wrapper.{h,cpp}; * TAO/tests/DynAny_Test/da_tests.pidl; * TAO/tests/DynAny_Test/DynAny_Test.dsw; * TAO/tests/DynAny_Test/basic_test.dsp; The basic DynAny test stuff. Makefile and README file to come shortly. Only works on NT for now. Fri Oct 23 15:00:30 1998 Chris Gill * orbsvcs/tests/Simulator/DOVEMIB/DOVEMIBx.dsp orbsvcs/tests/Simulator/DOVEMIB/TestClient.dsp orbsvcs/tests/Simulator/DOVEMIB/any_test_i.cpp: Modified custom build step for .idl files to look for the TAO IDL compiler in the $ACE_ROOT/bin directory, converted ostream output for which compiler was complaining about an ambiguous << operator into ACE_DEBUG output form. Thanks to Brian Gilstrap for pointing this out. 1998-10-23 Vishal Kachroo * examples/Simple/bank/README (Options): Explained the [-o IOR_file_name] option for the server more clearly. Fri Oct 23 12:41:14 1998 Carlos O'Ryan * tao/Environment.cpp: When using native C++ exceptions the CORBA_Environment::default_environment() function clears the environment every time it is called. This should fix some problems reported by Goran Lowkrantz Fri Oct 23 12:33:56 EDT 1998 Aniruddha Gokhale * TAO_IDL/be/be_visitor_interface/cdr_op_cs.cpp: Modified the generated code sightly to make sure that we check for exceptions. Thanks to Naga for pointing this out. Fri Oct 23 11:17:00 1998 David L. Levine * tao/CDR.i (operator<<): wrapped several final return statements with ACE_NOTREACHED to avoid unreachable statement warnings from DEC cxx. Fri Oct 23 10:25:49 1998 Alexander Babu Arulanthu * TAO_IDL/be/be_codegen.cpp : Fixed the problem with getting the suffix for a #include'd idl file. Use strrchr instead of strstr. Thanks to Ron Barack for tracking this down. Fri Oct 23 00:40:14 1998 Douglas C. Schmidt * TAO version 0.2.33 released. Thu Oct 22 23:28:52 1998 Douglas C. Schmidt * TAO version 0.2.32 released. Thu Oct 22 21:35:17 1998 Darrell Brunsch * TAO-INSTALL.html: Since we've been successfully using MSVC 6.0 for a while, might as well mention it here in the documentation, Thu Oct 22 20:43:06 1998 Jeff Parsons * tao/DynAnyC.h: Added 'TAO Export' to the DynAny utility classes AnySeq and NameValuePairSeq so the linker could find them. Thu Oct 22 14:09:12 1998 Aniruddha Gokhale * TAO_IDL/fe/fe_lookup.cpp: TAO_IDL/Makefile: Since GPERF had issued a warning indicating collision of keys, I used an additional -k1,2,$ option to GPERF. Thanks to Doug Schmidt for suggesting this. The collisions are now resolved. Thu Oct 22 11:01:12 1998 David L. Levine * TAO_IDL/be/be_visitor_interface/any_op_cs.cpp (visit_interface): initialize _tao_obj_ptr to 0 to avoid g++ warnings about possible use before initialization, in generated code. * examples/POA/Generic_Servant/Makefile: changed LSRC definition to use $(IDL_SRC) instead of $(POA_CLT_SRCS), so that client.o is not put into libserver.a. It caused link collisions on VxWorks. * orbsvcs/tests/Concurrency/lex.CC_command.cpp: forced CVS check-in to avoid out-of-date warnings during builds, after new checkouts. * tao/orbconf.h: enable TAO_USE_EXCEPTIONS ifdef ACE_HAS_EXCEPTIONS. Thu Oct 22 11:26:34 1998 Aniruddha Gokhale * TAO_IDL/include/fe_private.h: The hash and the lookup methods now use unsigned int as the type for the second argument. * TAO_IDL/fe/fe_lookup.cpp: Regenerated the file since the prototype for the hash and lookup methods had changed. Wed Oct 21 22:34:18 1998 Douglas C. Schmidt * TAO version 0.2.31 released. Wed Oct 21 22:49:09 1998 Darrell Brunsch * examples/POA/DSI/server.dsp: * examples/POA/DSI/client.dsp: Just noticed that these were pointing to the old location of tao_idl. Now fixed to look in /bin. Wed Oct 21 22:29:35 1998 Alexander Babu Arulanthu * TAO_IDL/be/be_codegen.cpp (TAO_CodeGen): Fixed the problem with #include'ing the server skeleton header of the another #included idl file. Thanks to Stach (t.stach@inobis.de) for tracking this down. Wed Oct 21 15:01:23 1998 Aniruddha Gokhale * 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: Added an extra "return 0;" after the TAO_ENDTRY; in each >>= operator. Thanks to David Levine for reporting the compiler warnings requiring a return statement. Wed Oct 21 13:09:54 1998 Nagarajan Surendran * performance-tests/Cubit/TAO/MT_Cubit/README: * performance-tests/Cubit/TAO/IDL_Cubit/README: Updated the instructions for running Cubit tests on CHORUS. Wed Oct 21 12:32:37 EDT 1998 Aniruddha Gokhale * 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: Added the TAO_TRY macros to the generated code for the <<= and >>= operators. In addition, David Levine had reported warnings because of the presence of an unnecessary, unreachable return statement. This has been fixed. * TAO_IDL/be/be_visitor_union/cdr_op_cs.cpp TAO_IDL/be/be_visitor_array/cdr_op_cs.cpp TAO_IDL/be/be_visitor_enum/cdr_op_cs.cpp TAO_IDL/be/be_visitor_exception/cdr_op_cs.cpp TAO_IDL/be/be_visitor_interface/cdr_op_cs.cpp TAO_IDL/be/be_visitor_structure/cdr_op_cs.cpp TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp: For IDL types defining a scope (e.g., structure, intrfaces), we were generating the inline CDR operators that used the CDR operators for their children before defining them. This was resulting in lots of compile errors. We now make sure that the CDR operators for the children are available before their use in the parent. * tao/IIOP_Interpreter.cpp (calc_key_union_attributes): There was an error in the calculation of the padded size of the discriminant. We were not taking inot account the size of the Base_Union. Thanks to Kirk Ellett (kellett@mdc.com) for sending me the bug report and a sample code that illustrated this problem. His example used a sequence of unions in which one of the member was double (size 8, alignment 8) that finally pinpointed this error to me. Wed Oct 21 07:22:12 1998 David L. Levine * TAO_IDL/driver/drv_args.cpp (DRV_parse_args): initialized local "s" to 0 to avoid g++ warning about possible unitialized use. Tue Oct 20 18:04:30 1998 Alexander Babu Arulanthu * TAO_IDL/be/be_codegen.cpp: * TAO_IDL/driver/drv_args.cpp: Fixed the problem with separating suffix from the mail file name. It was hard coded assuming that all files will end with .cpp which may not be true when somebody uses -sT or -st option to specify someother suffix like .cxx or something. So, we now use "." to separate the main name from the suffix. If . is also not there (sanity check), we just take the whole name as it is. Thanks to Terry.Rosenbaum@Radiology.MSU.edu for reporting this problem. 1998-10-20 Seth Widoff * orbsvcs/Trading_Service/Trading_Service.{h,cpp}: * docs/releasenotes/trader.html: Added a command line argument -TSdumpior to dump the trader's ior to a file. Thanks to Sunil Kumar for noticing this was missing. Tue Oct 20 11:07:18 1998 Matthew J Braun * tests/Param_Test/param_test_i.cpp: A re-check in... Tue Oct 20 11:17:01 EDT 1998 Aniruddha Gokhale * TAO_IDL/be: Introduced a small modification (read hack) so that all the CDR operators are now generated in the *.i file and with the ACE_INLINE keyword. Also, if ACE_INLINE is not defined, then we take care of this by generating the prototypes in the header enclosed within #ifndef .. #define .. #endif statements. This is just a first attempt to reduce fuction call overhead for compiled marshaling operators. However, an elegant solution to do this on a selective basis is needed. At this time, we force all <<, >> operators to be inlined. If the compiler decides not to inline, then we are going to pay a penalty. Affected files are: be_visitor_root/root.cpp be_visitor_root/cdr_op.cpp In addition, I found out that in a number of files, we were tightly coupling the generated code to a specific output stream e.g., the client stubs file. In the above scenario, when I moved the generation of the CDR operators to the inline files in the root.cpp file, I expected all the children nodes to generate code in the inline file. However, since the code for the child nodes were tightly coupled with the client stubs file, it resulted in errors. The best way to hide which output stream we are currently dealing with is to use the "stream" accessor of the visitor_context class. The desired stream gets set at the root level and this information is passed to all the children via the context. Affected files are: be_visitor_array/any_op_ch.cpp be_visitor_array/any_op_cs.cpp be_visitor_array/cdr_op_ch.cpp be_visitor_array/cdr_op_cs.cpp be_visitor_enum/any_op_ch.cpp be_visitor_enum/any_op_cs.cpp be_visitor_enum/cdr_op_ch.cpp be_visitor_enum/cdr_op_cs.cpp be_visitor_exception/any_op_ch.cpp be_visitor_exception/any_op_cs.cpp be_visitor_exception/cdr_op_ch.cpp be_visitor_exception/cdr_op_cs.cpp be_visitor_interface/any_op_ch.cpp be_visitor_interface/any_op_cs.cpp be_visitor_interface/cdr_op_ch.cpp be_visitor_interface/cdr_op_cs.cpp be_visitor_sequence/any_op_ch.cpp be_visitor_sequence/any_op_cs.cpp be_visitor_sequence/cdr_op_ch.cpp be_visitor_sequence/cdr_op_cs.cpp be_visitor_structure/any_op_ch.cpp be_visitor_structure/any_op_cs.cpp be_visitor_structure/cdr_op_ch.cpp be_visitor_structure/cdr_op_cs.cpp be_visitor_typedef/any_op_ch.cpp be_visitor_typedef/any_op_cs.cpp be_visitor_typedef/cdr_op_ch.cpp be_visitor_typedef/cdr_op_cs.cpp be_visitor_union/any_op_ch.cpp be_visitor_union/any_op_cs.cpp be_visitor_union/cdr_op_ch.cpp be_visitor_union/cdr_op_cs.cpp * performance-tests/Demux: performance-tests/Demux/CodeGen: Completely rewrote the entire test suite using proper ACE programming guidelines. The older version was written to work with the SunSoft's IIOP code. the current one is now fully CORBA compliant and works with TAO. A bunch of files have been deleted and new ones added. In particular, we now generate an interface definition and rely on TAO_IDL compiler to generate the stubs and skeletons (rather than we generating them as we did before). In addition, we have added an additional parameter i.e., POA depth. Read the README files in both the directories to see how to use this test suite. We need to experiment with this to see how TAo performs. Newly added files are: ./demux_test_client.{h, cpp} ./demux_test_macros.h ./demux_test_server.{h, cpp} ./CodeGen/codegen.{h, cpp} ./CodeGen/debug.cpp ./CodeGen/demux.cpp ./CodeGen/gen_names.cpp ./CodeGen/idl.cpp ./CodeGen/servant_hdr.cpp ./CodeGen/servant_impl.cpp Files removed are: ./CodeGen/gen.cpp ./CodeGen/impl.cpp ./CodeGen/objcreate.cpp ./CodeGen/perf.cpp ./CodeGen/impl.cpp ./CodeGen/skel.cpp ./CodeGen/stub.cpp ./CodeGen/tao.{h, cpp} Mon Oct 19 21:40:56 1998 David L. Levine * *.h: changed include protection from #if !defined to ifndef. Added #pragma once, if possible, i.e., after #include of an ace/ header. It can only be done after ace/config.h is included, because some platforms don't allow #pragma once. * tests/Param_Test/Makefile: don't build with g++ versions prior to 2.8, because they can't handle nested classes. Thanks to JM Strauss for confirming this. * examples/Quoter/Makefile: don't build with g++ versions prior to 2.8, because they can't handle nested classes. * orbsvcs/tests/EC_Mcast/EC_Mcast.cpp (disconnect_push_supplier): added ACE_UNUSED_ARG (_env). * utils/catior/catior.cpp: added #include of ace/streams.h because this file uses ifstreams. * tao/DynUnion_i.cpp (get_extractor): moved return statement inside of ACE_LACKS_LONGLONG_T protection to avoid compiler warning about unreachable statement. Mon Oct 19 15:37:53 1998 Nagarajan Surendran * orbsvcs/orbsvcs/AV/Endpoint_Strategy.cpp (create_B): Fixed a warning for using TAO_TRY_ENV with no TAO_CHECK_ENV.Thanks to David for reporting this. Mon Oct 19 15:37:30 1998 Chris Gill * orbsvcs/tests/Simulator/Event_Supplier/Event_Sup.dsp orbsvcs/tests/Simulator/Event_Supplier/Logging_Sup.dsp: Modified custom build step for NavWeap.idl to look for the TAO IDL compiler in the $ACE_ROOT/bin directory. Mon Oct 19 14:28:30 1998 Matthew J Braun * examples/POA/NewPOA/run_test.pl: Runs the test. Not exactly a difficult task, since there's one executable with no arguments. Mon Oct 19 11:24:40 1998 David L. Levine * orbsvcs/tests/Simple_Naming/client.cpp (already_bound_test, already_bound_test2): added .in () dereference of "obj" arg. * orbsvcs/tests/EC_Mcast/EC_Mcast.cpp (open_receiver): added .in () reference of "addr_server" arg. * orbsvcs/tests/EC_Basic/EC_Basic.cpp (run): added .in () reference of several args. * orbsvcs/tests/EC_Basic/EC_Basic.cpp: added a bunch of ACE_UNUSED_ARG's. Thanks to JM Strauss for reporting these. * test/Param_Test/driver.cpp: added Param_Test_Client instantiation. * TAO/rules.tao.GNU: added -Wno-uninitialized with egcs 2.91.x. It seems to be overly aggressive: DynAny_i.cpp:565: warning: `class TAO_DynAny_i * this' might be used uninitialized in this function * TAO_IDL/Makefile: added include of rules.tao.GNU, to pick up -Wno-unused and -Wno-uninitialized with g++/egcs. Sun Oct 18 22:05:00 1998 Chris Gill * orbsvcs/tests/Sched_Conf/Sched_Conf.cpp orbsvcs/tests/Sched_Conf/Sched_Conf_Runtime.cpp orbsvcs/orbsvcs/Sched/Config_Scheduler.cpp orbsvcs/orbsvcs/Sched/DynSched.cpp orbsvcs/orbsvcs/Sched/SchedEntry.{cpp,h,i} orbsvcs/orbsvcs/Sched/Scheduler.h: Propagated warnings for unresolved remote RT_Info dependencies throughout the call graph in the strategized scheduler, enabled schedule table generation even when there are unresolved remote dependencies or the utilization bound is exceeded. These changes allow iterative development of a schedule with useful scheduler warnings in debug mode. Sun Oct 18 21:40:23 1998 Sergio Flores * performance-tests/Cubit/TAO/MT_Cubit/Task_Client.cpp: * performance-tests/Cubit/TAO/MT_Cubit/Task_Client.h: * performance-tests/Cubit/TAO/MT_Cubit/client.cpp: * performance-tests/Cubit/TAO/MT_Cubit/client.h: * performance-tests/Cubit/TAO/MT_Cubit/Cubit_Task.cpp: Fixed some unreferenced variables that caused warnings. Deleted some variables that were not being used. Cleaned up the code a bit. Sun Oct 18 15:59:36 1998 Matthew J Braun * tests/Param_Test/param_test_i.cpp: Changed use of "TRUE" to 1 for a Boolean value. Thanks David! Sun Oct 18 14:20:35 1998 Jeff Parsons * tao/DynAny_i.h: * tao/DynArray_i.h: * tao/DynEnum_i.h: * tao/DynSequence_i.h: * tao/DynStruct_i.h: * tao/DynUnion_i.h: * tao/DynUnion_i_T.h: Edited files to conform to TAO layout style. Sun Oct 18 09:32:38 1998 David L. Levine * orbsvcs/tests/Event_Latency/Event_Latency.cpp (push, start_generating_events): fixed a couple of 64-to-32 bit casts so that it will compile for VxWorks. * examples/Callback_Quoter/Supplier_i.cpp (Supplier): reordered initializers to match declaration order. * utils/IOR_Parser/ior-handler.cpp (getString,getIdlInterface): declared char arrays that are used for return values as static. Sat Oct 17 13:04:50 1998 Douglas C. Schmidt * TAO version 0.2.30 released. Sat Oct 17 10:34:01 1998 Douglas C. Schmidt * tao/Sequence: Added a hash() method to TAO_Base_Sequence(). This makes it possible to use TAO bounded and unbounded sequences in the ACE_Hash_Map_Manager. Thanks to David Levine and John Geiss for reporting this. Sat Oct 17 00:44:10 1998 Douglas C. Schmidt * TAO version 0.2.29 released. Fri Oct 16 15:48:48 1998 Douglas C. Schmidt * tao: Replaced all #if !defined (TAO_FOO_H) with #ifndef TAO_FOO_H since many C++ preprocessors can recognize this idiom and optimize for it. * tao/POA.cpp: Changed from operator++ to ++operator to be more efficient. Thanks to Irfan for suggesting this change. Fri Oct 16 17:00:47 1998 Aniruddha Gokhale * TAO_IDL/be/be_visitor_array/cdr_op_cs.cpp: be_visitor_enum/cdr_op_cs.cpp: be_visitor_exception/cdr_op_cs.cpp: be_visitor_interface/cdr_op_cs.cpp: be_visitor_sequence/cdr_op_cs.cpp: be_visitor_structure/cdr_op_cs.cpp: be_visitor_union/cdr_op_cs.cpp: The generated <<, >> operators now have the C++ "inline" keyword before them. Thanks to Chris Cleeland for suggesting this. Fri Oct 16 04:16:19 1998 Irfan Pyarali * tao/Object_Table and POA: Changed the object table and POA/TAO options such that the POA now supports linear, active, and dynamic lookup strategies with the system id policy and supports linear, and dynamic lookup strategies with the user id policy. The default lookup strategy for the system id policy is active, while the default lookup strategy for the user id policy is dynamic. Note that the active lookup strategy is only supported with the system id policy. This is so because the user cannot decide the id for the active lookup strategy. It must be generated by the system. Also, added the ability for TAO_Dynamic_Hash_ObjTable and TAO_Linear_ObjTable to create object ids. This makes them usable with the system id policy. * tao/default_server.cpp (parse_args): Replaced -ORBdemuxstrategy with -ORBsystemidpolicydemuxstrategy and -ORBuseridpolicydemuxstrategy. * tao/params.h (TAO_Demux_Strategy): Removed TAO_NONE. It was not being used. Fri Oct 16 01:52:01 1998 Douglas C. Schmidt * TAO version 0.2.28 released. Fri Oct 16 01:25:43 1998 Sergio Flores * performance-tests/Cubit/TAO/MT_Cubit/Globals.cpp * performance-tests/Cubit/TAO/MT_Cubit/Makefile * performance-tests/Cubit/TAO/MT_Cubit/README * performance-tests/Cubit/TAO/MT_Cubit/Task_Client.cpp * performance-tests/Cubit/TAO/MT_Cubit/Task_Client.h * performance-tests/Cubit/TAO/MT_Cubit/client.cpp * performance-tests/Cubit/TAO/MT_Cubit/server.cpp * performance-tests/Cubit/TAO/MT_Cubit/Cubit_Task.cpp: Fixed a bug with the utilization test, updated the README file, and some aesthetic changes to the help. Fri Oct 16 00:45:22 1998 Kirthika Parameswaran * examples/Callback_Quoter/Notifier_Input_Handler.h * examples/Callback_Quoter/Notifier_Input_Handler.cpp added Event mechanism in the Notifier_Input_Handler. * examples/Callback_Quoter/Notifier_i.h * examples/Callback_Quoter/Notifier_i.cpp added close call in the shutdown method. Thu Oct 15 23:00:35 1998 Jeff Parsons * tao/DynAny_i.h: * tao/DynArray_i.h: * tao/DynEnum_i.h: * tao/DynSequence_i.h: * tao/DynStruct_i.h: * tao/DynUnion_i.h: Added TAO_Export to the class declarations (ouch!) Thu Oct 15 22:10:48 1998 Sergio Flores * performance-tests/Cubit/TAO/MT_Cubit/Task_Client.cpp: * performance-tests/Cubit/TAO/MT_Cubit/Globals.cpp: * performance-tests/Cubit/TAO/MT_Cubit/README: Synchronized the README file with the actual options in the source files. Cleaned up the wording for the help in the README and source files. Thanks to Brian Gilstrap for pointing this out. Thu Oct 15 22:06:48 1998 Alexander Babu Arulanthu * TAO_IDL/driver/drv_args.cpp: Fixed the help message to print the new options -H linear_search and -H binary_search. Thu Oct 15 21:20:56 1998 Nagarajan Surendran * orbsvcs/orbsvcs/AVStreams.idl: Uncommented the previously commented out code that uses Property. Thu Oct 15 20:08:36 1998 Nagarajan Surendran * performance-tests/Cubit/TAO/MT_Cubit/Task_Client.{h,cpp} : * performance-tests/Cubit/TAO/MT_Cubit/Cubit_Task.{h,cpp}: * performance-tests/Cubit/TAO/MT_Cubit/Globals.{h,cpp}: * performance-tests/Cubit/TAO/MT_Cubit/client.cpp: * performance-tests/Cubit/TAO/MT_Cubit/server.h: Removed Naming service code from all the files. MT_Cubit uses only files to share iors of servants to clients. So -s option is also removed. * performance-tests/Cubit/TAO/MT_Cubit/Makefile: Removed liborbsvcs from the LD_LIBS. * performance-tests/Cubit/TAO/MT_Cubit/MT_Cubit_Test: Removed -s option for server and client. Thu Oct 15 17:29:42 1998 Nanbor Wang * orbsvcs/orbsvcs/orbsvcs[_static].dsp: Added EC_UDP_Admin.cpp. Thanks to Russell L. Carter for reporting this. Thu Oct 15 13:54:23 1998 Kirthika Parameswaran * examples/Callback_Quoter/Supplier_i.cpp: examples/Callback_Quoter/Supplier_i.h Changed the names as they conflicted with (lowercase) supplier.cpp on NT. Thu Oct 15 13:22:39 1998 Jeff Parsons * TAO/tests/Param_Test/param_test_i.cpp: Added a Param_Test:: qualifier to declaration of PathSpec_var rPathSpec - got rid of a compile error. Thu Oct 15 10:49:58 1998 David L. Levine * TAO version 0.2.27 released. Wed Oct 14 23:33:24 1998 Douglas C. Schmidt * TAO version 0.2.26 released. Wed Oct 14 20:10:00 1998 Carlos O'Ryan * orbsvcs/tests/EC_Mcast/EC_Mcast.cpp: This test uses the Reactive version of the EC, just to show how to configure the EC in that mode (this test does not attempt to preserve priorities, so it is good place to put this). * tao/encode.cpp: Fixed encoding for Any when both cdr_ and value_ are zero (usually when the Any is holding a tk_null). Wed Oct 14 18:35:26 1998 Kirthika Parameswaran * TAO/examples/Callback_Quoter/ Consumer.idl Consumer_Input_Handler.cpp Consumer_Input_Handler.h Consumer_i.cpp Consumer_i.h Makefile Notifier.idl Notifier_Input_Handler.cpp Notifier_Input_Handler.h Notifier_i.cpp Notifier_i.h Supplier.cpp Supplier.h consumer.cpp notifier.cpp supplier.cpp Renamed and added above files. * TAO/examples/Callback_Quoter/ Client_i.cpp Consumer.dsp Consumer.idl Consumer_i.cpp Consumer_i.h Makefile MarketFeed.dsp MarketFeed_i.cpp MarketFeed_i.h Server_i.cpp Server_i.h Supplier.dsp Supplier.idl Supplier_i.cpp Supplier_i.h consumer_client.cpp marketfeed_client.cpp server.cpp Removed these files. Wed Oct 14 12:05:37 1998 Matthew J Braun * tests/Param_Test/ub_struct_seq.h * tests/Param_Test/ub_struct_seq.cpp * tests/Param_Test/param_test_i.h * tests/Param_Test/param_test_i.cpp * tests/Param_Test/param_test.idl * tests/Param_Test/helper.h * tests/Param_Test/helper.cpp * tests/Param_Test/driver.cpp Added test for unbounded sequence of structs. This is in response to a bug report from Seung-Lee Hoon . Thanks to Andy and Carlos for help. Wed Oct 14 11:20:26 1998 Douglas C. Schmidt * TAO version 0.2.25 released. Wed Oct 14 10:47:47 1998 Carlos O'Ryan * tao/ORB_Core.cpp: Fixed template instantiations. Wed Oct 14 00:42:25 1998 Douglas C. Schmidt * TAO version 0.2.24 released. Tue Oct 13 23:03:24 1998 Carlos O'Ryan * tao/ORB_Core.h: * tao/ORB_Core.i: * tao/ORB_Core.cpp: * tao/Invocation.i: * tao/Connect.cpp: * tao/CDR.h: * tao/CDR.cpp: The input CDR can be created using a user provided data block, this is used to select the right kind of locking for the Data_Block reference count. The ORB_Core acts as a Factory of Data_Blocks, selecting the right type according to the -ORBinputcdrallocator option. * orbsvcs/Event_Service/svc.conf: Use the appropiate allocator for the EC, because it shares the CDR buffers between several threads (to minimize data copying). Tue Oct 13 22:15:53 1998 Irfan Pyarali * orbsvcs/tests/EC_Throughput/ECT_Supplier.cpp (svc): Must set the wr_ptr correctly. Otherwise, the ORB doesn't know how much to data to encode. * orbsvcs/orbsvcs/Event/Event_Manip.cpp (_create): event_set length must be calculated before the call to get_buffer() since that call will change the length. Tue Oct 13 17:04:15 1998 Jeff Parsons * tao/Any.cpp: Modified copy constructor and assignment operator to avoid encoding the value of the source Any when it is 0 (which it is if the Any was constructed from just a typecode). Perhaps this sequence of calls should never be made, but this guards against it anyway. Tue Oct 13 10:51:10 1998 Carlos O'Ryan * tao/ORB.cpp: Thread ids in some platforms (ex: HP-UX) are structures, so they cannot be initialized to 0. Thanks to David Janello for reporting this. Tue Oct 13 09:16:20 1998 David L. Levine * orbsvcs/orbsvcs/Sched/DynSched.cpp: changed a handful of == to =. Thanks, g++ :-) * orbsvcs/tests/EC_Basic/EC_Basic.cpp (dump_results): changed type of static array elements from int to CORBA::ULong to avoid signed/unsigned comparisons. Mon Oct 12 18:55:00 1998 Chris Gill * orbsvcs/orbsvcs/RtecScheduler.idl orbsvcs/orbsvcs/Event/EC_Gateway.cpp orbsvcs/orbsvcs/Event/EC_Gateway_UDP.cpp orbsvcs/orbsvcs/Sched/DynSched.{cpp, h} orbsvcs/orbsvcs/Sched/SchedEntry.{cpp, i}: Added a new kind RT_Info type for EC_Gateway RT_Infos that depend on remote invocations. This change facilitates building a distributed schedule without requiring the use of a single global scheduling service. Thanks to Tom Venturella for this idea. * orbsvcs/orbsvcs/Runtime_Scheduler.cpp orbsvcs/orbsvcs/Scheduler_Factory.cpp orbsvcs/orbsvcs/Sched/Config_Scheduler.cpp orbsvcs/tests/EC_Multiple/EC_Multiple.cpp orbsvcs/tests/Sched_Conf/Sched_Conf.{cpp, dsp} orbsvcs/tests/Sched_Conf/Sched_Conf_Runtime.{cpp, dsp, h} (NEW): Fixed a number of problems with correctness and usability of the config and runtime schedulers, and the scheduler factory. Thanks to Amir Bahmanyari for providing detailed debugging reports. Mon Oct 12 18:32:01 1998 Carlos O'Ryan * tao/try_macros.h: Added new macros to support multiple TRY blocks in the same function. Andy is going to test them. * performance-tests/Cubit/TAO/IDL_Cubit/README: The file still made references to the -s option. Mon Oct 12 14:55:41 1998 Douglas C. Schmidt * orbsvcs/orbsvcs/Naming/CosNaming_i.cpp (TAO_NamingContext): Made a mistaken with my Naming_Context change for the Hash_Map_Manager. We need to use the argument to set the size of the table, not the data member since it hasn't been assigned yet. Thanks to Chris Gill and Kirthika for reporting this. Mon Oct 12 11:30:38 1998 Carlos O'Ryan * orbsvcs/orbsvcs/Event/Event_Channel.h: * orbsvcs/orbsvcs/Event/Event_Channel.i: * orbsvcs/orbsvcs/Event/Event_Channel.cpp: * orbsvcs/orbsvcs/Event/Memory_Pools.cpp: Removed some template instantiations that were not used anymore. Moved the template instantiations related to memory pool from Event_Channel.cpp into Memory_Pools.cpp Added a comparison operator for the TAO_EC_Event class, this is needed to complete the instantiation of ACE_Array. * orbsvcs/orbsvcs/Event/Event_Manip.h: The constructor was private, making some g++ variants very angry. Mon Oct 12 10:31:35 1998 Douglas C. Schmidt * orbsvcs/orbsvcs/Naming/CosNaming_i: Removed the need to allocate HASH_MAP dynamically. This helps improve performance and also eliminates another point of failure in the constructor. Mon Oct 12 09:52:46 1998 David L. Levine * orbsvcs/orbsvcs/Naming/CosNaming_i.cpp (TAO_NamingContext ctor): reordered initializers to match declaration order. * performance-tests/Cubit/TAO/MT_Cubit/run_tests.pl: put ./ in front of executable names. That way, users don't need to have . in their path. Sun Oct 11 23:18:19 1998 Carlos O'Ryan * orbsvcs/orbsvcs/Event/Event_Manip.h: * orbsvcs/orbsvcs/Event/Event_Manip.i: * orbsvcs/orbsvcs/Event/Event_Manip.cpp: * orbsvcs/orbsvcs/Event/Dispatching_Modules.h: * orbsvcs/orbsvcs/Event/Dispatching_Modules.i: * orbsvcs/orbsvcs/Event/Dispatching_Modules.cpp: * orbsvcs/orbsvcs/Event/Event_Channel.h: * orbsvcs/orbsvcs/Event/Event_Channel.i: * orbsvcs/orbsvcs/Event/Event_Channel.cpp: * orbsvcs/orbsvcs/Event/CORBA_Utils_T.h: * orbsvcs/orbsvcs/Event/CORBA_Utils_T.i: * orbsvcs/orbsvcs/Event/CORBA_Utils_T.cpp: * orbsvcs/orbsvcs/Event/Memory_Pools.h: * orbsvcs/orbsvcs/Event/Memory_Pools.i: * orbsvcs/orbsvcs/Event/Memory_Pools.cpp: Implemented a new class to manage event life time. There are two components to the new strategy: a reference counted version of the EventSet buffer and a smart pointer to a single event in the buffer. This new strategy allowed us to go down from 6 memory copies to 1 copies for events received remotely (and 2 for local events). Since the copies were nested and the Event structure can be quite complicated this reduced the number of memory allocations significantly. The old CORBA_Utils classes are no longer needed. * orbsvcs/orbsvcs/Event/Event_Channel.h: * orbsvcs/orbsvcs/Event/Event_Channel.i: * orbsvcs/orbsvcs/Event/Event_Channel.cpp: Fixed a problem with correlation, if a consumer was expecting A&B and a supplier sent A, A, B the consumer received two copies of A. * orbsvcs/tests/EC_Basic/EC_Basic.h: * orbsvcs/tests/EC_Basic/EC_Basic.i: * orbsvcs/tests/EC_Basic/EC_Basic.cpp: Added a new correlation test. * orbsvcs/orbsvcs/Makefile: * orbsvcs/Event_Service/Makefile: * orbsvcs/tests/EC_Multiple/Makefile: * orbsvcs/tests/EC_Basic/Makefile: * orbsvcs/tests/EC_Mcast/Makefile: * orbsvcs/tests/EC_Custom_Marshal/Makefile: Updated the dependencies. * orbsvcs/tests/EC_Basic/README: * orbsvcs/tests/EC_Mcast/README: The README file was out of date. * docs/releasenotes/TODO.html: Updated the task corresponding to this change. 1998-10-11 Marina Igorevna Spivak * orbsvcs/Naming_Service/Naming_Service.{h, cpp}, README: Added a command line option to specify how long a service should run before shutting down. This is useful for running purify, quantify, or avoiding having explicitly kill the process. * orbsvcs/orbsvcs/CosNaming_i.{h,cpp}: Removed several memory allocations (in , and ). Factored some common code out into function. Cleaned up some code and got rid of . Changed TAO_NamingContext to contain a pointer to the hash map rather than actual object to allow command line option of choosing the size of hash map allocated upon creation (rather than using the default size). Sun Oct 11 17:59:32 1998 Kirthika Parameswaran * examples/Callback_Quoter/Client_i.cpp (CLient_i::run ()): changed the argument wrongly passed to the unregister_callback from Consumer_var to Consumer_var.in (). Sun Oct 11 17:09:16 1998 Carlos O'Ryan * TAO_IDL/be/be_visitor_interface/interface_cs.cpp: * tao/POAC.cpp: * tao/PolicyC.cpp: * tao/DynAnyC.cpp: * tao/CurrentC.cpp: Optimized _narrow() it does not need to call _create_stub() on the collocated case, using the CORBA::Object stub is good enough. 1998-10-11 Marina Igorevna Spivak * orbsvcs/Naming_Service/Naming_Service.h : change the order of data member declarations to match initialization order in constructors in .cpp file. 1998-10-10 Marina Igorevna Spivak * orbsvcs/orbsvcs/Naming/Naming_Utils.{h, cpp}: Updated TAO_Naming_Server to take in and pass on a parameter specifying the size for the naming cotexts' hash tables. * orbsvcs/Naming_Service/Naming_Service.{h, cpp}, README: Added a command line option to specify size of hash tables allocated upon creation of naming contexts. Sat Oct 10 22:31:00 1998 Kirthika Parameswaran * examples/Callback_Quoter/Client_i.cpp: added the part where the consumer keys in information. Sat Oct 10 16:19:11 1998 Carlos O'Ryan * tests/CDR/tc.cpp: This file was still referencing CORBA::_tc_Bounds and CORBA::_tc_BadKind 1998-10-10 Marina Igorevna Spivak * orbsvcs/tests/Simple_Naming/client.cpp: Added parenthesis to avoid warnings when compiling on NT. Sat Oct 10 00:51:52 1998 Douglas C. Schmidt * TAO version 0.2.23 released. Fri Oct 09 23:48:40 1998 Irfan Pyarali * tao/Server_Request.cpp (set_exception and set_result): Used the Any copy constructor to copy the user provided any. Fri Oct 9 17:13:32 1998 Nagarajan Surendran * orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.cpp: Used the host and pid to get a unique names for the vdev and streamendpoint objects to register with the Naming Service while using the Process Endpoint strategy. This will avoid name clashes between the audio and video process. * orbsvcs/orbsvcs/AV/Endpoint_Strategy.cpp: Used the child's host and pid to lookup for Vdev and streamendpoint for the process endpoint strategy. * orbsvcs/orbsvcs/AV/AVStreams_i.cpp: Removed the code that used _out variable to pacify sun_CC warnings. Sun_CC doesn't complain anymore. Fri Oct 9 16:44:14 1998 Nagarajan Surendran * orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Receiver.idl: Added this new interface for the Trader Agent to push the server mmdevice and the filenames to the mpeg client. * orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/Command_Handler.{h,cpp}: Added code to implement the Receiver interface. Fixed memory leaks. Fixed the code so that it works for multiple movies i.e tears down the stream after every movie and starts a new connection. Also made code robust by using suspend and resume handlers for the video client to wait for the initial frame from the server. Added an option to specify the data host to bind for the data which can be used for specify an ATM interface. Fixed the problem of Play command not playing from where fastforward/rewind stopped. * orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/ctr.cpp: Removed some unnecessary and redundant code and moved them into classes in Command_Handler.cpp. * orbsvcs/tests/AVStreams/mpeg/source/client/vcr.cpp: Fixed the code so that it passes the command line arguments properly to the command_handler. Fri Oct 9 16:27:46 1998 Carlos O'Ryan * orbsvcs/tests/EC_Throughput/ECT_Supplier.h: * orbsvcs/tests/EC_Throughput/ECT_Supplier.cpp: * orbsvcs/tests/EC_Throughput/ECT_Consumer.h: * orbsvcs/tests/EC_Throughput/ECT_Consumer.cpp: We measure and report the elapsed time for the test (in the case of the consumer the time since we receive the first event). We use this to measure throughput (in events per second). * orbsvcs/orbsvcs/Event/Memory_Pools.h: * orbsvcs/orbsvcs/Event/Memory_Pools.cpp: * orbsvcs/orbsvcs/Event/Event_Channel.h: * orbsvcs/orbsvcs/Event/Event_Channel.cpp: * orbsvcs/orbsvcs/Event/Dispatching_Modules.h: * orbsvcs/orbsvcs/Event/Dispatching_Modules.cpp: We do not overload operator new and operator delete anymore. The allocators we were using were problematic for this use case and we believe that a better speed up can be obtained by reducing the number of allocations. Thanks to "Mark Hyett" , "Mark L. Boriack" , "J. Russell Noseworthy" for helping us with this bug. Fri Oct 09 15:27:17 1998 Nanbor Wang * tao/ORB_Core.cpp (~App_Allocated): Free up the memory pool before deleting the allocators. Fri Oct 9 13:42:47 1998 Shawn Michael Atkins * performance-tests/Thruput/TAO/results/REMOTE/README: added this file so cvs won't erase these empty directories for storing results of the thruput test. Note: also added the empty directories ./results/REMOTE. * performance-tests/Thruput/TAO/run_client: run_client now checks for the testname directory and if it doesn't exist, it will create a directory to put the results. Fri Oct 09 02:19:09 1998 Irfan Pyarali * tao/IIOP_Object.cpp (Profile): Added new constructor. Fri Oct 9 01:15:54 1998 Alexander Babu Arulanthu * tao/Operation_Table.cpp: * tao/Operation_Table.h: * TAO_IDL/be/be_interface.cpp: Integrated Linear Search operation lookup strategy option to TAO_IDL. We use again GPERF for generating lookup method for this. Thanks to great work by Vishal (vishal@cs), GPERF has an option to generate linear search code. Thu Oct 8 17:37:14 1998 Carlos O'Ryan * tao/ORB.h: * tao/Typecode.h: * tao/Typecode.cpp: * tao/Typecode_Constants.h: * tao/Typecode_Constants.cpp: Moved the CORBA::TypeCode::_tc_Bounds and CORBA::TypeCode::_tc_Kind typecodes to their proper namespace. * docs/releasenotes/TODO.html: Updated some tasks related to the last change. * tao/Connect.cpp: If an exception is thrown while handling a oneway request we just ignore it, unless the debugging flags in the ORB are enabled, in that case we print an informative message and the exception. * tao/ORB_Core.h: * tao/ORB_Core.cpp: The App_Allocated class does not own the CDR allocators all the time, sometimes they are global and shared by all the App_Allocated objects. Thu Oct 08 16:14:04 1998 Nanbor Wang * tao/ORB_Core.{h,cpp} (~App_Allocated): Added a destructor for this class. Some of its members are now allocated from the heap and they need to be deleted. Thu Oct 8 12:15:38 1998 Carlos O'Ryan * orbsvcs/tests/EC_Throughput/ECT_Supplier.h: * orbsvcs/tests/EC_Throughput/ECT_Supplier.cpp: * orbsvcs/tests/EC_Throughput/ECT_Consumer.h: * orbsvcs/tests/EC_Throughput/ECT_Consumer.cpp: The new test sends "bursts" of events, without any pause between each event. Multiple burst can be sent with small pauses in between. Shutdown works now, even if multiple suppliers and multiple consumers are beign used. The ECT_Consumer program only needs to know the number of suppliers beign used. Thu Oct 08 09:50:18 1998 Nanbor Wang * orbsvcs/orbsvcs/Property/CosPropertyService_i.h: Added #progma to disable VC "inheritance via dominance" warnings. * docs/releasenotes/orbcore.html (Miscellany): Fixed a dead link. Thanks to Mark Weel for reporting this. Wed Oct 07 23:27:07 1998 Douglas C. Schmidt * TAO version 0.2.22 released. Wed Oct 7 22:27:48 1998 Alexander Babu Arulanthu * orbsvcs/orbsvcs/Property/CosPropertyService_i.cpp (delete_property): Fixed the double deletion case. Thanks to "Ulf Jhrig" for reporting this. Wed Oct 7 21:44:52 1998 Carlos O'Ryan * tao/try_macros.h: Some compilers (MSVC++ 5.0) will complain about throwing an exception and not returning a value. * tao/Object_Table.cpp: The find() method on the object table was asserting that the entry ought to be in use, in fact if the entry was free the object was not found and we just have to return -1. Wed Oct 07 14:49:32 1998 Nanbor Wang * orbsvcs/orbsvcs/orbsvcs[_static].dsp: Added property service files. Thanks to Ulf Jaehrig for noticing this. Wed Oct 07 11:33:37 1998 Irfan Pyarali * tao/POA.cpp (state): Fully qualified the enums of the POA_Manager's Processing_State. Thanks to John Morey for helping with this. Wed Oct 7 10:53:45 1998 Carlos O'Ryan * examples/Callback_Quoter/Supplier_i.cpp: Added missing template instantiations. Wed Oct 7 09:19:00 1998 Douglas C. Schmidt * tao/try_macros.h (TAO_RETHROW): Added a return to TAO_THROW_ENV_RETURN. Thanks to John Morey for reporting this. Wed Oct 7 08:39:59 1998 Aniruddha Gokhale * tao/try_macros.h: Added a backslash in a the TAO_TRY macro definition. Thanks to John Morey (jmorey@tbi.com) for sending the bug fix. Wed Oct 7 08:29:51 1998 Aniruddha Gokhale * doc/compiler.html: Updated the documentation for the -Ge, -Gt options. Thanks to Tom Dobridge for pointing this out. Wed Oct 07 02:50:39 1998 Douglas C. Schmidt * TAO version 0.2.21 released. Wed Oct 7 000:13:19 1998 Jeff Parsons * presentations/TAO/dynany.tex: New file for use whenever the nexr presentation comes around. Wed Oct 07 00:07:43 1998 Irfan Pyarali * tests/Param_Test/server.cpp: * performance-tests/Thruput/TAO/server.cpp: * orbsvcs/tests/Simulator/DOVEMIB/svr.cpp: Changed "RootPOA_is_BAD" to "child_poa". It was sending negative POA vibes ;-) Tue Oct 06 22:49:27 1998 Irfan Pyarali * tao/Connect.cpp (handle_close): Replaced this->shutdown() with explicit removal from the reactor and explicit closing of the socket. this->shutdown() also doing too much since it was also purging the recycling act from the recycler. We need the recycling act to be available until all the reference to the Svc_Handlers are removed and the Svc_Handler is destroyed since we need the recycling act to check the hint. Thanks to Mark L. Boriack for helping in tracking down this problem. Tue Oct 6 22:12:30 1998 Douglas C. Schmidt * examples/Simple/grid/Grid_i.cpp: Fixed bugs with exceptions. Thanks to Tom Dobridge for pointing this out. Tue Oct 6 21:25:22 1998 Darrell Brunsch * TAO-INSTALL.html: Added an extra note about compiling the release version. Care has to be taken since conflicts between the two tao_idl compilers can occur. Tue Oct 6 21:02:24 1998 Vishal Kachroo * examples/Simple/bank/AccountManager_i.cpp (close): Changed TAO_TRY_ENV to _env to avoid duplicate definition. Thanks to Tom Dobridge for pointing this out. Tue Oct 6 20:28:10 1998 Carlos O'Ryan * tao/try_macros.h: The TAO_TRY macro generates a new do/while block even for the native C++ exception case, this is more consistent with the alternative mapping. Thanks to Tom Dobridge for pointing this out. * examples/Callback_Quoter/MarketFeed_i.cpp: * examples/Callback_Quoter/Client_i.cpp: Removed instantiations of TAO_TRY_ENV because TAO_TRY does it for us. Thanks to Tom Dobridge for pointing this out. Tue Oct 6 20:05:55 1998 Kirthika Parameswaran * examples/Callback_Quoter/Supplier_i.cpp (unregister_callback): removed a variable which was defined unnecessarily. Thanks to David Levine for reporting this. Tue Oct 6 17:16:46 1998 Jeff Parsons * tao/DynUnion_i.cpp: Another try at making VxWorks happy without using memcmp in DynUnion_i_T.cpp. This should do it. Tue Oct 6 13:01:24 1998 Carlos O'Ryan * TAO_IDL/be/be_sunsoft.cpp: Fixed some problems with char and octet constants. Thanks to Anders W. Tell for reporting this. Tue Oct 06 11:23:32 1998 David L. Levine * performance-tests/Cubit/TAO/MT_Cubit/MT_Cubit_Test: added support for server and client on different machines, using -r option. It assumes that the user's shell is Bourne shell-compatible. I'll try to fix that soon. * performance-tests/Cubit/TAO/MT_Cubit/plot: plot high priority in blue, low in light green. Tue Oct 6 10:26:06 1998 Carlos O'Ryan * orbsvcs/tests/EC_Multiple/EC_Multiple.cpp: Dummy initialization for "observer_handler" to give compilers some peace of mind about its use. * orbsvcs/orbsvcs/Event/EC_Gateway.cpp: Assigning an _var to a _ptr is ambiguous, we have to use .in(). Tue Oct 6 08:06:33 1998 Aniruddha Gokhale * TAO_IDL/driver/drv_args.cpp: Added a -Gi option to enable interpretive marshaling. More work needs to be done here such that we can selectively generate compiled or interpretive marshaling based on some pragmas. * docs/compiler.html: Added documentation for the new options for the IDl compiler. Tue Oct 06 03:56:05 1998 Douglas C. Schmidt * TAO version 0.2.20 released. Tue Oct 06 03:12:38 1998 Douglas C. Schmidt * TAO version 0.2.19 released. Tue Oct 6 02:58:35 1998 Alexander Babu Arulanthu * docs/compiler.html: Updated documentation for the new Binary Search operation lookup stratetgy. Tue Oct 06 00:11:11 1998 Douglas C. Schmidt * TAO version 0.2.18 released. Mon Oct 5 22:12:07 1998 Carlos O'Ryan * orbsvcs/orbsvcs/Event/EC_Gateway.cpp: Added some template instantiations. * docs/Options.html: * docs/configurations.html: Added a few comments for the latest options. Mon Oct 05 21:43:26 1998 Douglas C. Schmidt * TAO version 0.2.17 released. Mon Oct 5 20:35:28 1998 Carlos O'Ryan * orbsvcs/orbsvcs/Event/EC_Gateway.h: * orbsvcs/orbsvcs/Event/EC_Gateway.cpp: The IIOP Gateways were not preserving the remote supplier IDs properly. The current implementation uses a map of ProxyPushConsumer on the "local" EC, using a different entry for each supplier ID the local consumers show interest in. At run-time the events are dispatched to the corresponding entry in the map. A special consumer is used for all the other events. * orbsvcs/orbsvcs/Event/Event_Channel.cpp: Fixed a dead-lock during shutdown. Also fixed some problems while updating the Observers; we held the EC lock during the complete process, but it is fairly common to make changes to the EC while the observers are beign updated. * orbsvcs/tests/EC_Multiple/EC_Multiple.cpp: Some improvements on shutdown. * docs/releasenotes/TODO.html: Updated the tasks corresponding to the changes in this ChangeLog entry. Mon Oct 5 21:16:53 1998 Kirthika Parameswaran * examples/Callback_Quoter/Supplier_i.cpp (unregister_callback): The code to perform the unregistration of the consumer was added. Mon Oct 05 18:54:31 1998 Irfan Pyarali * orbsvcs/orbsvcs/Naming/CosNaming_i: Fixed the POA id generation to take into account the name of the parent. Otherwise everyone was using the same "namespace". * performance-tests/Cubit/TAO/IDL_Cubit: Added the testing of sequences of structs. Mon Oct 5 18:07:38 1998 Douglas C. Schmidt * examples/Makefile: Changed the Makefile so that it'll now also build the new Callback_Quoter test. Mon Oct 5 18:15:31 1998 Carlos O'Ryan * tests/Param_Test/Makefile: * orbsvcs/tests/Logger/Makefile: * orbsvcs/tests/Simple_Naming/Makefile: * examples/Quoter/Makefile: * examples/POA/Forwarding/Makefile: * examples/POA/Generic_Servant/Makefile: * orbsvcs/orbsvcs/Makefile: * performance-tests/Cubit/TAO/IDL_Cubit/Makefile: Removed the -Gc options for the IDL compiler, if wanted the option can be added on the command line when invoking make, as: $ make TAO_IDLFLAGS=-Gc Mon Oct 5 17:29:14 1998 Jeff Parsons * tao/DynUnion_i.cpp: * tao/DynUnion_i_T.cpp: Put a preprocessor conditional around the case that instantiates the longlong type of template class in get_extractor(). Because of this, the memcmp in DynUnion_i_T.cpp has been removed - no need for it now and VxWorks and Chorus should still be happy. Mon Oct 05 16:39:44 1998 Nanbor Wang * tao/corba.h: Removed duplicated macro definitions that are defined in try_macros.h. * tao/try_macros.h (TAO_CATCH): Added ACE_UNUSED_ARG (VAR) for this when TAO_USE_EXCEPTIONS and removed ACE_UNUSED_ARG (VAR) when !TAO_USE_EXCEPTIONS. * tao/Dyn{Any,Array,Enum,Sequence,Struct,Union}_i.cpp: Changed exceptions CORBA::NO_MEMORY to CORBA::NO_MEMORY () to avoid compilation errors when TAO_USE_EXCEPTIONS is enabled. Mon Oct 05 16:13:48 1998 David L. Levine * TAO version 0.2.16 released. Mon Oct 05 15:37:26 1998 Douglas C. Schmidt * TAO version 0.2.15 released. Mon Oct 5 14:56:03 1998 Kirthika Parameswaran * examples/Callback_Quoter/Consumer_i.cpp (push): Since I was checking whether the stock_value was greater than the threshold desired, I changed the consumer's reaction to selling shares rather than buying them. Mon Oct 05 13:52:17 1998 David L. Levine * tao/DynAnyC.cpp,DynArray_i.cpp,DynEnum_i.cpp,DynSequence_i.cpp, DynStruct_i.cpp,DynUnion_i.cpp,DynUnion_i_T.cpp: added ACE_LACKS_LONG_LONG_T support. * orbsvcs/tests/EC_Multiple/EC_Multiple.cpp (print_priority_info): use ACE_OS::getpid () instead of getpid (). Mon Oct 5 11:28:02 1998 Carlos O'Ryan * orbsvcs/orbsvcs/Event/Event_Channel.cpp: MSVC++ does not like auto_ptr x = new Foo; but it does like auto_ptr x (new Foo); Thanks to Nanbor for catching this problem and commiting the fix. Mon Oct 5 10:47:52 1998 Aniruddha Gokhale * TAO_IDL/be/be_visitor_operation/operation_ss.cpp: Had to remove the code that Carlos had added to propagate the exception from the _tao_skel_env to the _tao_env parameter. This was necessary since we no longer use the _tao_skel_env parameter. Mon Oct 5 07:54:21 EDT 1998 Aniruddha Gokhale * TAO_IDL/be/be_visitor_operation/compiled_marshal.cpp: There was a bug in the generated code. Thanks to David Levine for sending me the bug report. * TAO_IDL/be/be_visitor_operation/operation_ss.cpp: TAO_IDL/be/be_visitor_interface/interface_ss.cpp: We no longer need the _tao_skel_environment variable in the skeletons. These modifications were necessary to maintain support for both the compiled as well as interpretive marshaling. The _is_a_skel now generates a proper TAO_CHECK_ENV_RETURN_VOID statement. Also made sure that unused local variables are not generated. * TAO_IDL/be/be_visitor_operation/rettype_vardecl_ss.cpp TAO_IDL/be_include/be_visitor_operation/rettype_vardecl_ss.h: Added a new visitor for compiled marshaling for the generation of return type variable in the server skeleton code. * TAO_IDL/be/be_visitor_factory.cpp: For compiled marshaling we now invoke a new visitor for the return val variable in the skeleton. The reason we do this is since the interpreted version uses an OBject_var. * tao/{CurrentS, POAS, PolicyS}.cpp: Since we no longer use the _tao_skel_environment, we had to make the necessary modifications. * tao/Server_Request.{h, cpp}: The marshal method no longer takes in the _skel_env parameter Mon Oct 05 06:44:11 1998 David L. Levine * orbsvcs/tests/EC_Basic/EC_Basic.cpp (run): declare loop index "i" outside of loop because it is used again. Sun Oct 4 19:48:25 1998 Carlos O'Ryan * TAO_IDL/be/be_visitor_operation/operation_ss.cpp: Exceptions were not beign transmitted from the server back to the client. We need to rethink the use of two environments in the skeleton. Sun Oct 4 16:37:23 1998 Carlos O'Ryan * orbsvcs/orbsvcs/Event/Event_Channel.h: * orbsvcs/orbsvcs/Event/Event_Channel.cpp: It is now possible to have several suppliers with the same ID on the same Event Channel. I also fixed a bug with the supplier reconnections: if a consumer was filtering by source it wouldn't receive the events if the supplier disconnected and connected again. Thanks to Thomas Venturella for some his hints on how to fix this. Fixed some problems with exception handling and propagation. * orbsvcs/tests/Makefile: * orbsvcs/tests/EC_Basic/Makefile: * orbsvcs/tests/EC_Basic/README: * orbsvcs/tests/EC_Basic/run_test.pl: * orbsvcs/tests/EC_Basic/EC_Basic.h: * orbsvcs/tests/EC_Basic/EC_Basic.i: * orbsvcs/tests/EC_Basic/EC_Basic.cpp: Added a new test for the Event Channel, this will grow to become the main regression test for the EC, at this point it only tests the use of several suppliers with the same ID. * docs/releasenotes/TODO.html: Update the file. Sun Oct 4 15:40:05 1998 Balachandra Natarajan * Any.cpp Anticipated fix for break in build. The TypeCode_ptr was not completely qualified (as CORBA::TypeCode_ptr). Sun Oct 04 08:40:12 1998 David L. Levine * performance-tests/Cubit/TAO/MT_Cubit/Task_Client.cpp,client.cpp, server.cpp,run_tests.pl: used IIOP instead of URL style obj refs for maximum performance. Sat Oct 3 20:20:14 1998 Alexander Babu Arulanthu * TAO_IDL/be/be_interface.cpp (gen_gperf_lookup_methods): Added code to handle Binary Search operation lookup strategy. Not yet tested with GPERF. * tao/Operation_Table.cpp: Added class for Binary Search operation lookup strategy. s * TAO_IDL/be_include/be_codegen.h: New LOOKUP_STRATEGY enum for Binary search. * tao/Operation_Table.h (TAO_Active_Demux_OpTable): Added class for Binary Search operation lookup strategy. * TAO_IDL/be_include/be_interface.h (be_type): Added private methods to generate code for binary searh and linear search. Not yet tested with GPERF. Doesnt harm using the old operation lookup strategies. * TAO_IDL/include/idl_global.h (class IDL_GlobalData): Renamed perfect_hasher by gperf_path. gperf is going to be used for binary search and linear search as well. So it is not specific to perfect hashing. * TAO_IDL/driver/drv_args.cpp (DRV_parse_args): Changed the option <-H dynamic> to <-H dynamic_hash>. Added options <-H perfect_hash>, <-H binary_search> and <-H linear_search>. Do NOT try these *_search options yet. It is yet to be tested with GPERF. Also extended testing for GPERF's existance in the case of Binary Search strategy also. Sat Oct 3 19:35:05 1998 Balachandra Natarajan * Any.cpp Fix for memeory leaks in extraction. Sat Oct 3 15:16:05 1998 Marina Igorevna Spivak * orbsvcs/tests/Simple_Naming/client.cpp * orbsvcs/tests/Simple_Naming/README * orbsvcs/tests/Simple_Naming/run_test.pl Added destroy test to the set of tests already there. Sat Oct 03 09:54:14 1998 David L. Levine * performance-tests/Thruput/Orbix/Makefile: removed Quantify/Purify relics. * performance-tests/Thruput/Orbix/ttcp_decl.h,ttcp_i.cpp, Client.cpp,Srv_Main.cpp: replace USE_QUANTIFY with ACE_HAS_QUANTIFY. * TAO_IDL/be/be_visitor_scope.cpp (next_elem): initialized local "node" to 0 to avoid g++ warning about possible uninitialized used. Fri Oct 2 23:03:20 1998 Carlos O'Ryan * docs/releasenotes/ec.html: Added an entry to explain the differences between the TAO event service and the standard CORBA event service. Fri Oct 2 20:16:35 1998 Jeff Parsons * tao/DynAnyC.cpp: David got a couple of warnings with Dec cxx that led me to some lines that I had commented out to find a bug and forgot to uncomment. Fri Oct 2 20:02:42 1998 Jeff Parsons * TAO_IDL/be/be_sunsoft.cpp: IDL compiler will now generate correct code for a constant char that is an escape sequence. Fri Oct 02 16:49:59 1998 David L. Levine * performance-tests/Cubit/TAO/MT_Cubit/Task_Client.{h,cpp}, client.cpp,server.cpp: replaced NO_ACE_QUANTIFY with ACE_HAS_QUANTIFY. * performance-tests/Cubit/TAO/MT_Cubit/MT_Cubit_Test: kill with -15 instead of -1, because HUP no longer kills TAO processes. Fri Oct 2 16:09:24 1998 Douglas C. Schmidt * tao/IIOP_Object.i (use_locate_requests): Changed the 1s to 0s so they would work correctly. Thanks to Michael Kircher for reporting this. Fri Oct 02 09:02:54 1998 Nanbor Wang * TAO_IDL/be/be_visitor_operation/operation_ss.cpp: Removed an unused local variable, not the one Andy just added. ;) Fri Oct 2 08:18:28 1998 Aniruddha Gokhale * TAO_IDL/be/be_visitor_operation/operation_ss.cpp: There was a local variable that got removed by mistake while removing all unused locals. It has been reincluded. Thu Oct 1 23:31:34 1998 Carlos O'Ryan * Updated the dependencies in all the Makefiles due to the DynAny changes. Thu Oct 1 22:05:39 1998 Jeff Parsons * tao/DynAny.pidl: * tao/InconsistentTypeCode.pidl: * tao/DynAnyC.{h,i,cpp}: * tao/DynAnyS.cpp: * tao/DynAny_i.{h,cpp}: * tao/DynArray_i.{h,cpp}: * tao/DynEnum_i.{h,cpp}: * tao/DynSequence_i.{h,cpp}: * tao/DynStruct_i.{h,cpp}: * tao/DynUnion_i.{h,cpp}: * tao/DynUnion_i_T.{h,cpp}: * tao/InconsistentTypeCode.{h,cpp}: * tao/corba.h: * tao/ORB.{h,i,cpp}: * tao/POA_CORBA.h: * tao/Makefile: * tao/TAO.dsp: All the DynAny stuff, plus the necessary additions to other TAO files, plus mods to Unix Makefile and VC project file. Builds were successful using VC5, Sun cc and GNU g++. Thu Oct 01 21:21:19 1998 Nanbor Wang * TAO_IDL/be/be_visitor_operation/operation_ss.cpp (gen_raise_exception): (gen_check_exception): (gen_demarshal_params): Removed unused local variable(s) to avoid warnings from VC5. Thu Oct 1 20:51:39 1998 Nanbor Wang * TAO_IDL/be/be_visitor_interface/cdr_op_cs.cpp: Added trailing return statements to supress warnings from g++. Thu Oct 1 16:03:55 1998 Darrell Brunsch * performance-tests/Cubit/TAO/IDL_Cubit/client.dsp: * performance-tests/Cubit/TAO/IDL_Cubit/server.dsp: * performance-tests/Cubit/TAO/IDL_Cubit/collocation_test.dsp: Removed orbsvcs reference. Thu Oct 01 14:22:35 1998 Nanbor Wang * tao/CDR.i (operator<<): Changed to use TAO_CHECK_ENV for Any, Object and TypeCode operations and added trailing return statement to avoid warnings from MSVC. * TAO/TAO_IDL/tao_idl.dsp: * TAO/TAO_IDL/tao_idl_static.dsp: Updated project based on Andy's changes. (by Darrell.) * TAO/TAO_IDL/be/be_visitor_array/any_op_cs.cpp: * TAO/TAO_IDL/be/be_visitor_enum/any_op_cs.cpp: * TAO/TAO_IDL/be/be_visitor_exception/any_op_cs.cpp: * TAO/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp: * TAO/TAO_IDL/be/be_visitor_structure/any_op_cs.cpp: * TAO/TAO_IDL/be/be_visitor_union/any_op_cs.cpp: Added trailing "return 0;" for generated code for operator>>= of these to avoid MSVC warnings. Thu Oct 1 12:42:58 EDT 1998 Aniruddha Gokhale * TAO_IDL/be/be_factory.cpp /be_include/be_factory.h /be_stream Renamed to be_factory.{h, cpp} to be_stream_factory.{h, cpp}, respectively. We removed the visitor factory related classes and code from these files and created new files. * TAO_IDL/be/be_interpretive.cpp /be_include/be_interpretive.h: Removed. Instead we now have the be_visitor_factor.{h, cpp} file described next. * TAO_IDL/be/be_visitor_factory.cpp /be_include/be_visitor_factory.h: Added the abstract base class visitor factory called "TAO_Visitor_Factory" that provides the "make_visitor" factory method. Special concrete visitor factories called "TAO_Interpreted_Visitor_Factory", "TAO_Compiled_Visitor_Factory", and "TAO_Common_Visitor_Factory" are now available as Singleton concrete factories. The TAO_Common_Visitor_Factory is never used directly by the client (i.e., the tao_cg object). There are several visitors that are common to both the interpretive as well as the compiled approaches e.g., interface code generation, any operators, etc. Thus, the two primary factories (interpretive or compiled) will internally delegate code generation to the common factory based on the state. * TAO_IDL/be/be_codegen.cpp /be_include/be_codegen.h: Removed a large number of unused enumerations for the CG_STATE. Also, renamed all the *DOCALL* states to *INVOKE* states to make it look generic and applicable to both interpretive as well as compiled marshaling. Added a new method called "config_visitor_factory (void)". This allows the TAO_CODEGEN Singleton object to be strategized with the desired visitor factory which can be either the interpretive or the compiled visitor factory, but never the common factory. The common factory gets invoked internally by the other two factories as described before. This strategy is fixed based on the command line option provided to the compiler. We no longer create a new factory and own it. Instead, as described before, we simply hold a pointer to the abstract base factory. This is initialized to either the interpretive or compiled factory objects using the config_visitor_factory method. * TAO_IDL/be_include/be.h: Made the necessary changes due to the addition and renaming of files described above. * TAO_IDL/be/be_produce.cpp: We call the config_visitor_factory method on our TAO_CODEGEN singleton, strategy object. It will configure itself with the right visitor factory. * TAO_IDL/be/be_visitor_argument.cpp /be_include/be_visitor_argument.h: Added new include *.{h, cpp} files described next. * TAO_IDL/be/be_visitor_argument/compiled_marshal_cs.cpp /compiled_marshal_ss.cpp /pre_invoke_cs.cpp /be_include/be_visitor_argument/compiled_marshal_cs.h /compiled_marshal_ss.h /pre_invoke_cs.h: New files with new visitors added for compiled marshaling support. The compiled_marshal_{cs,ss}.{h,cpp} has visitors that generates the code for marshaling and demarshaling parameters using the CDR <<, >> operators. The pre_invoke_cs is a visitor that inherits from the pre_docall_cs. Its sole purpose is to override the visit_interface and visit_interface_fwd methods. The reason we need to do this is because for compiled marshaling, we do not need to deal with the base CORBA_Object_ptr types and do the necessary _narrow inside the stub/skel. This is all done in the code for the <<, >> operators. * TAO_IDL/be/be_visitor_argument/docall_cs.cpp /pre_docall_cs.cpp /marshal_ss.cpp /post_upcall_ss.cpp /upcall_ss.cpp: For all the variable sized types, especially the out parameters, we were declaring the _var, _out, and the ptr type for the parameter. We no londer need to instantiate so many variables. We can deal with just the _var types. All actions including memory allocation, passing it to the do_static_call or the upcall, is handled using the _var parameter. This reducs code size as well as the activation record size since the number of local variables is significantly reduced. * TAO_IDL/be/be_visitor_argument/vardecl_ss.cpp /be_include/be_visitor_argument/vardecl_ss.h: We define an addition class called be_compiled_visitor_args_vardecl_ss that inherits from the base be_visitor_args_vardecl_ss. Its only purpose is to override the base class's visit_interface methods. The overridden methods avoid the generation of the extra local variables of the CORBA::Object_ptr type. * 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_structure/any_op_cs.cpp: The code for <<=, and >>= now uses the TAO_TRY macros so that they can work with real C++ exceptions also. This is not yet done for all types since this is under testing. * TAO_IDL/{be, be_include}/be_visitor_enum/enum_ch.{h, cpp} TAO_IDL/{be, be_include}/be_visitor_exception/cdr_op_cs.{h, cpp} TAO_IDL/{be, be_include}/be_visitor_exception/exception_ctor.{h, cpp} TAO_IDL/{be, be_include}/be_visitor_interface/cdr_op_cs.{h, cpp}: TAO_IDL/{be, be_include}/be_visitor_operation/argument.{h, cpp}: TAO_IDL/{be, be_include}/be_visitor_union/cdr_op_cs.{h, cpp}: Modifications were necessary due to the change in the "post_process" signature and semantics. * TAO_IDL/be/be_visitor_interface/interface.cpp: Removed some commented-out code. * TAO_IDL/be/be_visitor_interface/interface_ss.cpp: The skeleton code now uses the TAO_TRY macros for seamless exception support between the real C++ exceptions and the alternate mapping. * TAO_IDL/be/be_visitor_operation.cpp /be_include/be_visitor_operation.h: Added new include *.{h, cpp} files described below. * TAO_IDL/be/be_visitor_operation/operation.cpp TAO_IDL/be/be_visitor_operation/argument_invoke.cpp TAO_IDL/be/be_visitor_operation/argument_marshal.cpp TAO_IDL/be/be_visitor_operation/compiled_marshal.cpp TAO_IDL/be/be_visitor_operation/rettype_preinvoke_cs.cpp TAO_IDL/be/be_visitor_operation/rettype_return_cs.cpp TAO_IDL/be/be_visitor_operation/rettype_marshal_ss.cpp TAO_IDL/be_include/be_visitor_operation/operation.h TAO_IDL/be_include/be_visitor_operation/argument_invoke.h TAO_IDL/be_include/be_visitor_operation/argument_marshal.h TAO_IDL/be_include/be_visitor_operation/compiled_marshal.h TAO_IDL/be_include/be_visitor_operation/rettype_preinvoke_cs.h: For all the variable sized return types we were declaring the _var, _out, and the ptr type for the parameter. We no londer need to instantiate so many variables. We can deal with just the _var types. All actions including memory allocation, passing it to the do_static_call is handled using the _var parameter. This reduces code size as well as the activation record size since the number of local variables is significantly reduced. Some other visitors such as the asrgument_invoke and argument_marshal are needed to generate the right number of && operator at the right place in the large "if" statement that is generated for marshaling or unmarshaling parameters. This is useful only for the compiled approach. The base class operation visitor was added to the operation.{h, cpp} files. It provides a number of helper classes used commonly by inherited visitors. * TAO_IDL/be/be_visitor_operation/rettype_vardecl_ss.cpp: TAO_IDL/be_include/be_visitor_operation/rettype_vardecl_ss.h: Define a new class for compiled marshaling approach that overrides the visit_interface method over its base class. This way we avoid generation of extra variables. * TAO_IDL/{be, be_include}/be_visitor_operation/operation_ch.{h,cpp} TAO_IDL/{be, be_include}/be_visitor_operation/operation_cs.{h,cpp} TAO_IDL/{be, be_include}/be_visitor_operation/operation_sh.{h,cpp} TAO_IDL/{be, be_include}/be_visitor_operation/operation_ss.{h,cpp}: All these now inherit from the base operation visitor. For the client side stubs (operation_cs.{h, cpp}) and server side skeletons (operation_ss.{h, cpp}), we now factor out all the code that is common to both the interpreted and compiled stubs/skels. Thus, the visit_operation method is now a template method. It calls operations that are implemented only by derived classes. These methods e.g., gen_pre_stub_info, gen_marshal_and_invoke, and others will generate the code that is different for the interpreted vs compiled approaches.. We define derived classes called "be_interpretive_visitor_operation_cs" and "be_compiled_visitor_operation_cs" (similarly for the skeletons) that provide the implementation for the pure virtual methods called by the template method "visit_operation". * TAO_IDL/be/be_visitor_scope.cpp /be_include/be_visitor_scope.cpp: Added a new "pre_process" method. Both the pre_process and post_process methods now take the "be_decl *" as an argument. This was the change made to the post_process. In addition, post_process is always invoked irrespective of the node being the last one in the scope or not. To test if the node being processed is the last one, we have added a new method called "last_node" returning a boolean value. Similarly, we have added "next_elem" method that gives us our successor and the "elem_number" that gives us our number in the list. * TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp: For bounded vs unbounded strings, we generate different code for the CDR operators. I need to check if this policy is strictly followed for all aggregate types that can have a string member. * TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_ch.cpp: For sequences of arrays, there were some weird problems using the ACE_reinterpret_cast which is now fixed. * TAO_IDL/be/be_visitor_typedef/typedef.cpp: Removed lots of cases in the switch statement since we removed those enumerations from the CG_STATE of the TAO_CODEGEN object. * TAO_IDL/Makefile: ran make depend. * TAO_IDL/driver/drv_args.cpp: ACEified the code. Updated the usage_error message with new command line options. Handled the new options. -Gc - generate compiled marshaled code -Ge - enable C++ exception support (unimplemented) -Gt - generate optimized typecodes (unimplemented) -Sa - suppress any operators -St - suppress typecode generation The default is to always generate all the Any operators, TypeCodes and to use the Interpretive marshaling. * TAO_IDL/include/idl_global.h /utils/utl_global.cpp: Added a number of mutator and accesor methods for the newly added command line options. * performance_tests/Cubit/TAO/IDL_Cubit/Cubit_Client.cpp: Commented out the RTI and the Union tests since the CDR operators are not yet done for the unions. * tao/Any.{h, i} tao/ORB.{h, i} tao/Object.{h, i} tao/Typecode.{h, i}: The parameter to the copy ctor and assignment operator of the _out class is now "const". This resolves the weird warnings we were getting about a temporary being created. We were also required to instantiate the _out type explicitly to overcome this. However, we no londer need to write this non-compliant code. * tao/CDR.i: Code for <<, >> operators for objref, typecode, and Anys had a bug. * tao/corba.h: Moved the inclusion of the try_macros.h before the CDR.h since we us the macros in the code Thu Oct 1 11:18:35 1998 Douglas C. Schmidt * examples/Simple/bank/AccountManager_i.cpp: Removed the unneeded ';' at the end of the #pragmas. Thanks to Margherita Vittone Wiersma for reporting this. Thu Oct 01 10:39:44 1998 David L. Levine * tao/ORB_Core.cpp (input_cdr_dblock_allocator): wrapped break following return with ACE_NOTREACHED, in two places. * orbsvcs/orbsvcs/Event/Event_Channel.cpp: removed ACE_Malloc instantiation because it's now in tao/ORB_Core.cpp. Thu Oct 01 00:17:17 1998 Irfan Pyarali * tao/ORB_Core.h: Removed template specialization for INET_Addr.hash(). Also changed/fixed explicit template instantiations.