Changes to attempt to silence bcc64x
[ACE_TAO.git] / TAO / ChangeLogs / ChangeLog-1997
blobca7d6f510cf91704426ca5348db9888fbc6644d5
1 Wed Dec 31 23:29:59 1997  Nanbor Wang  <nw1@cs.wustl.edu>
3         * tao/nvlist.cpp (add_value_consume): Added a space between * and
4           /* to avoid warning messages on NT.
6 Thu Jan 01 14:22:34 1998  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
8         * TAO version 0.0.50, released Thu Jan 01 14:22:34 1998.
10 Thu Jan  1 13:31:55 1998  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
12         * TAO_IDL/be/{be_sequence, be_state_sequence}.cpp: An unwanted
13         reference operator "&" was getting generated for sequences whose
14         element types were not special managed types. This was because the
15         case for handling the managed types somehow got mixed with the
16         normal ccase. Thanks to Nanbor Wang (nw1@cs.wustl.edu) for
17         pointing this out.
19 Wed Dec 31 18:29:57 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
21         * TAO_IDL/be/{be_sequence, be_state_sequence}.cpp: Changed the way
22         we use managed types. Instead of allocating an array, we now
23         instantiate the
24         managed type on the fly i.e., when the operator [] is invoked. The
25         reasons for doing this are: (1) no need for dynamic memory
26         allocation for maintaining the array of managers (2) It was
27         causing all kinds of problems while decoding because the sizeof
28         such sequence classes was bigger than those without managed
29         types. However, due to this scheme, we can no longer define the []
30         operator to return a reference because that would mean that a
31         reference to a local variable/temporary will be returned. Hence
32         changes were necessary in files.
34         TypeCode generation was also erroneous. This is fixed. We were
35         generating wrong encapsulation length.
37         * TAO_IDL/be/be_string.cpp: Indentation in typecode generation.
39         * TAO_IDL/be/be_type.cpp: nested_type_name - improved to
40         eliminate one more strange error message getting generated by the
41         MSVC++ compiler. Still needs testing.
43         * TAO/tao/{invoke, decode}.cpp: Reversed the changes which were
44         made to account for sequencese with managed types. We no longer
45         need these changes because sequences with managed types no longer
46         keep an extra data member. Thus the size of all sequences (top
47         level) is the same (so is the layout).
49         * TAO/tao/nvlist.cpp: commneted out unused variables, parameters.
51         * TAO/tests/Param_Test: Included tests for string sequences,
52         variable sized structs as well as nested structs.
54 Tue Dec 30 13:46:44 1997  Nanbor Wang  <nw1@cs.wustl.edu>
56         * tests/Cubit/TAO/IDL_Cubit/clnt.h (portnum_): Changed its data
57           type from CORBA::ULong to CORBA::UShort to kill warning
58           messages.
60         * tao/orbobj.cpp (create_list): Changed data type of the loop
61           counter to CORBA::Long.  This caused a warning message on VC.
63         * doc/releasenotes/index.html: Added documentation for adding IDL
64           files into Visual C++'s projects.
66         * tests/Param_Test/Param_Test.dsw:
67         * tests/Param_Test/client.dsp:
68         * tests/Param_Test/server.dsp: New workspace and projects were added.
70 Tue Dec 30 10:15:11 1997  Irfan Pyarali  <irfan@cs.wustl.edu>
72         * orbsvcs/Event_Service/Fast_Reactor.h (ACE_ES_Fast_Reactor):
73           Added the other version of handle_events to stop the compiler
74           from being cranky.
76 Tue Dec 30 10:06:45 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
78         * TAO_IDL/be/{be_state_argument, be_state_operation,
79         be_state_attribute}.cpp - Unnecessary call on "init_mgr" for
80         sequences that do not have any managed types was getting
81         generated. This is fixed. In addition, MSVC++ compiler was
82         producing an error saying "ambiguous assignment" when an "_out"
83         variable was assigned to a pointer type. Solaris platform (CC and
84         g++) did not give any such errors since they were (most probably)
85         using the operator *() on the _out class, but MSVC++ did not.
87         * TAO/tests/Cubit/IDL_Cubit/clnt.cpp: The same "ambiguous
88         assignment" error described above has been fixed here too.
90         * TAO/tests/Param_Test: Added a method called "reset_parameters"
91         so that we do not change the "in" parameter for every
92         iteration. Previuosly we were settingthe in parameter differently
93         for every new iteration. However, for performance comparison
94         purposes, this was not correct (e.g., in the case of string
95         sequences or unbounded strings where everytime we were sending a
96         different lenght string and hence the performance numbers were
97         different for each run and couldn't be compared.)
99 Mon Dec 29 21:51:38 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
101         * TAO_IDL/be/be_sequence.cpp: get_name was returning a local
102         variable. In addition, added generationof a method called
103         "init_mgr" that must be used to initialize the sequence's
104         underlying mgr_ vector.
106         There was some problem with bounded/unbounded sequence code
107         generation (an error  in an if stmt).
109         * TAO_IDL/be/{be_state_argument, be_state_attribute,
110         be_state_operation}.cpp - added code to generate the call to
111         init_mgr for sequences after the do_call is made.
113         * TAO_IDL/be_include/be_sequence.h : gen_name returns char* rather
114         than const char* because we now allocate a new string and return
115         it.
117         * TAO/tao/Makefile: applied make depend to incorporate nvlist.i
119         * TAO/tao/corbacom.h: Added a "boolean release" field to
120         CORBA_SEQUNECE so that its layout is similar to the generated code
121         for sequences.
123         * TAO/tao/decode.cpp: In sequence decode, we also set the release
124         flag to 1. In addition, for sequences of strings and objrefs, we
125         zero out additional 4 bytes that are used to store a pointer to
126         the manager array.
128         * TAO/tao/deep_free.cpp: some indentation. Also passed the correct
129         parameter to string/wstring::decode
131         * TAO/tao/invoke.cpp: In do_dynamic_call, for sequences of strings
132         (inclusing typedefed sequences of strings that themselves can be
133         typedefed), we must allocate size+4 bytes for demarshaling the
134         sequences. The extra 4 bytes are for the manager array pointer.
136         * TAO/tao/nvlist.cpp: I the method item, the loop should have run
137         from o to max_ rather than upto len_.
139         * TAO/tao/orbobj.cpp: Used placement new of NamedValue in the
140         create_list method.
142         * TAO/tests/Param_Test: Added new tests for Fixed_Struct and
143         string sequence. Added a README file.
145         * TAO/doc/releasenotes/index.html: updated with latest success stories.
147 Thu Dec 25 20:36:58 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
149         * TAO version 0.0.49, released Thu Dec 25 20:36:58 1997.
151 Thu Dec 25 18:43:03 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
153         * TAO_IDL/be/{be_state_attribute, be_state_argument}.cpp: Handled
154         teh remaining cases (except Arrays) that use the newly added
155         methiods to class NVList. The Param_Test test suite is being
156         developed to track any memory leaks.
158         * TAO/tests/Cubit/TAO/IDL_Cubit/clnt.cpp:  Used sequence_var in
159         the cube_sequence function to avoid memory leaks. However, there
160         still are leaks.
162 Wed Dec 24 18:44:47 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
164         * TAO version 0.0.48, released Wed Dec 24 18:44:47 1997.
166 Wed Dec 24 18:44:02 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
168         * tao: Added the nvlist.i file to the tao/ directory.
170 Wed Dec 24 18:11:08 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
172         * TAO_IDL/be/{be_operation, be_state_argument}.cpp: Added
173         "argument_count" method to be_operation which is helpful in
174         creating an NVList of the appropriate size. Previously we were
175         creating an empty list and adding parameters one by one. This was
176         causing a lot of reallocations which were wasteful.
178         At this time, we have code base that can successfully send/receive
179         primitive data types as well as strings.
181         * TAO_IDL/be_include/be_operation.h : Added a new method called
182         "argument_count" to give us the total number of parameters we
183         have.
185         * TAO/tao/{any.cpp, connect.cpp, corbacom.i, decode.cpp,
186         iioporb.cpp, marshal.i, objtable.cpp, optable.cpp, request.cpp}:
187         In all these files, after a call to CORBA::string_free, we made
188         the pointer point to 0. Otherwise, purify was giving us "Free
189         Memory read" errors. Also, this was (by fluke) causing some
190         applications to run successfully.
192         * TAO/tao/{nvlist.h, nvlist.cpp, nvlist.i, corba.h}: Added
193         unimplemented methods to NamedValue and NVList. Created a nvlist.i
194         file and updated corba.h
196         * TAO/tao/corbacom.cpp: In an assignment operator for Sting_out,
197         we were not checking if the assignment was from ourselves. Also a
198         array was incorrectly being deleted as "delete ..." rather than
199         "delete [] ...".
201         * TAO/tao/invoke.cpp: Inside do_call, we were not deleting memory
202         for the "in" part of the inout parameters. Right now we have fixed
203         this problem only for strings. Others will be added as new tests
204         are built. Do_dynamic_call also needs such a fix. NOT DONE in this release.
206         * TAO/tao/orb_core.h, orb_core.cpp: ORB_init takes "const char*"
207         orb name as the argument instead of just char*.
209         * TAO/tests/Param_Test: Successful in testing
210         "test_unbounded_string". removed a few memory leaks where we were
211         not deleting the client objects.
213 Tue Dec 23 19:34:40 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
215         * TAO version 0.0.47, released Tue Dec 23 19:34:40 1997.
217 Tue Dec 23 13:36:50 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
219         * TAO_IDL/be/be_state_sequence.cpp: ACE_NESTED_CLASS must be
220         generated for seq elements that are scoped. We were generating
221         this macor only when seq elements were typedefs. However, seq
222         elements can also be structs or any other types that have an
223         enclosing scope. Thanks to Chris Gill <cdgill@cs.wustl.edu> for
224         the bug report.
226         * TAO_IDL/be/be_state_operation.cpp: Similar problem as above for
227         return types of operations.  Bug reported by Chris Gill.
229         * TAO_IDL/be/be_exception.cpp: Whenever a _narrow fails, we were
230         trying to do a ACE_dynamic_cast to a 0. Instead, we now return a
231         0. Again thanks to Chris Gill <cdgill@cs.wustl.edu> for
232         the bug report.
234         * TAO_IDL/be/be_state_argument.cpp: We were ot generating a char
235         *& for inout string parameters. Instead only a char * was getting
236         generated. Fixed.
238 Tue Dec 23 11:45:03 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
240         * docs/releasenotes/index.html:
241           There is no need to set config=1 when compiling
242          TAO_ROOT/orbsvcs.
244 Mon Dec 22 22:02:49 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
246         * TAO version 0.0.46, released Mon Dec 22 22:02:49 1997.
248 Mon Dec 22 19:08:55 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
250         * tao/corba.h:
251         * tao/except.cpp:
252         * tao/except.h:
253           The TAO_TRY macros use the _narrow methods for exceptions;
254           making the TAO_CATCH() macro fully functional.
256         * orbsvcs/Dump_Schedule/Dump_Schedule.cpp:
257         * orbsvcs/Event_Service/Dispatching_Modules.cpp:
258         * orbsvcs/Event_Service/Dispatching_Modules.i:
259         * orbsvcs/Event_Service/Event_Channel.cpp:
260         * orbsvcs/Event_Service/Event_Channel.i:
261         * orbsvcs/Event_Service/Event_Service.cpp:
262         * orbsvcs/Event_Service/RT_Task.cpp:
263         * orbsvcs/Event_Service/ReactorTask.cpp:
264         * orbsvcs/Scheduling_Service/Config_Scheduler.cpp:
265         * orbsvcs/Scheduling_Service/Config_Scheduler.h:
266         * orbsvcs/Scheduling_Service/Scheduling_Service.cpp:
267         * orbsvcs/orbsvcs/Runtime_Scheduler.cpp:
268         * orbsvcs/orbsvcs/Runtime_Scheduler.h:
269         * orbsvcs/orbsvcs/Scheduler_Factory.cpp:
270         * orbsvcs/tests/Event_Latency/Event_Latency.cpp:
271           Changed the ACE_TRY (and friends) macros to TAO_TRY.
273         * orbsvcs/orbsvcs/RtecEventChannelAdmin.idl:
274           Cleaned up some exceptions definitions.
276         * orbsvcs/tests/Event_Latency/Makefile:
277           Since the schedule is not distributed (yet) by default we
278           compile the config run, hopefully this will cause less
279           confusion.
281 Sun Dec 21 23:41:05 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
283         * TAO version 0.0.45, released Sun Dec 21 23:41:05 1997.
285 Sun Dec 21 20:29:33 1997    <nw1@JIG>
287         * tests/Cubit/TAO/MT_Cubit/client/client.dsp: *
288           tests/Cubit/TAO/MT_Cubit/server/server.dsp: Corrected erroneous
289           library pathes in Release version of project files.
291 Sun Dec 21 18:30:41 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
293         * TAO_IDL/be/be_codegen.cpp: The macro used in the #if !defined
294         (..) clause in the header files was incorrectly generated when IDL
295         file names had characters other than letters in it. Fixed.
297         * TAO/tests/Param_Test: A new test suite to test all the parameter
298         passing modes - return, in, inout, and out for a large number of
299         IDL data types. The purpose of this test suite is to verify the
300         correctness of the stubs/skeletons generated by TAO IDL compiler,
301         eliminate any existing errors in the marshaling engine, track down
302         any memory leaks, and finally to measure the performance and fine
303         tune the code if required. In the first version of the test, we
304         only test "shorts". We will be adding other tests as soon as we
305         can.
307 Sat Dec 20 00:34:45 1997  Sergio Flores  <sergio@tango.cs.wustl.edu>
309         * tests/Cubit/CORBAplus/MT_Cubit/client/client.cpp (main):
310         * tests/Cubit/CORBAplus/MT_Cubit/client/Makefile:
311         * tests/Cubit/CORBAplus/MT_Cubit/client/Task_Client.cpp:
312         * tests/Cubit/CORBAplus/MT_Cubit/client/Task_Client.h:
313         * tests/Cubit/CORBAplus/MT_Cubit/client/client.cpp:
314         * tests/Cubit/CORBAplus/MT_Cubit/client/cubit.idl:
315         * tests/Cubit/CORBAplus/MT_Cubit/server/Makefile:
316         * tests/Cubit/CORBAplus/MT_Cubit/server/cubit.idl:
317         * tests/Cubit/CORBAplus/MT_Cubit/server/cubit_i.cpp:
318         * tests/Cubit/CORBAplus/MT_Cubit/server/cubit_i.h:
319         * tests/Cubit/CORBAplus/MT_Cubit/server/svr.cpp:
320         Ported the MT_Cubit example to CORBAplus.
322 Fri Dec 19 11:33:51 1997  Sergio Flores  <sergio@tango.cs.wustl.edu>
325         * tests/Thruput/CORBAplus/Makefile:
326         * tests/Thruput/CORBAplus/README:
327         * tests/Thruput/CORBAplus/client.cpp:
328         * tests/Thruput/CORBAplus/extract:
329         * tests/Thruput/CORBAplus/run:
330         * tests/Thruput/CORBAplus/run_client:
331         * tests/Thruput/CORBAplus/run_server:
332         * tests/Thruput/CORBAplus/run_test:
333         * tests/Thruput/CORBAplus/run_tests:
334         * tests/Thruput/CORBAplus/server.cpp:
335         * tests/Thruput/CORBAplus/ttcp.idl:
336         * tests/Thruput/CORBAplus/ttcp_decl.h:
337         * tests/Thruput/CORBAplus/ttcp_i.cpp:
338         * tests/Thruput/CORBAplus/ttcp_i.h:
339         * tests/Thruput/CORBAplus/utils.cpp: Ported the Thruput example to
340         CORBAplus for C++ by Expersoft.  Try running the "run_tests"
341         script for the client side.
343         * tests/Thruput/Orbix/Client.cpp:
344         * tests/Thruput/Orbix/Makefile:
345         * tests/Thruput/Orbix/README:
346         * tests/Thruput/Orbix/Srv_Main.cpp:
347         * tests/Thruput/Orbix/extract:
348         * tests/Thruput/Orbix/loop64:
349         * tests/Thruput/Orbix/orbixsol2s4.mk:
350         * tests/Thruput/Orbix/run:
351         * tests/Thruput/Orbix/run_client:
352         * tests/Thruput/Orbix/run_server:
353         * tests/Thruput/Orbix/run_test:
354         * tests/Thruput/Orbix/run_tests:
355         * tests/Thruput/Orbix/ttcp.idl:
356         * tests/Thruput/Orbix/ttcp_decl.h:
357         * tests/Thruput/Orbix/ttcp_i.cpp:
358         * tests/Thruput/Orbix/ttcp_i.h:
359         * tests/Thruput/Orbix/utils.cpp: Included the Thruput example for
360         IONAs Orbix ORB in the tests directory.
362         * tests/Thruput/TAO/Makefile:
363         * tests/Thruput/TAO/README:
364         * tests/Thruput/TAO/client.cpp:
365         * tests/Thruput/TAO/run:
366         * tests/Thruput/TAO/run_client:
367         * tests/Thruput/TAO/run_server:
368         * tests/Thruput/TAO/run_test:
369         * tests/Thruput/TAO/server.cpp:
370         * tests/Thruput/TAO/svc.conf:
371         * tests/Thruput/TAO/ttcp.idl:
372         * tests/Thruput/TAO/ttcp_decl.h:
373         * tests/Thruput/TAO/ttcp_i.cpp:
374         * tests/Thruput/TAO/ttcp_i.h:
375         * tests/Thruput/TAO/utils.cpp: Moved the TAO version of the
376         Thruput example to a "TAO" directory in the Thruput directory.
378         * tests/Thruput_test: Renamed this directory to Thruput.
380 Fri Dec 19 00:28:24 1997    <nw1@JIG>
382         * tests/Cubit/TAO/MT_Cubit/server/svr.cpp (main): Removed some
383           random codes.
385         * tao/tao_internals.cpp (close_services): Disabled closing down
386           the ACE_Service_Config when reference count drops to 0.
388 Thu Dec 18 20:36:28 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
390         * TAO version 0.0.44, released Thu Dec 18 20:36:28 1997.
392 Thu Dec 18 19:35:28 1997  Sergio Flores  <sergio@tango.cs.wustl.edu>
394         * orbsvcs/tests/Logger/clnt.cpp (init):
395         * orbsvcs/Naming_Service/CosNaming_i.cpp (bind_new_context): Fixed
396         a bug in the Naming Service and the Logger test program
397         implementation.  Thanks to Marina Spivak <marina@cs.wustl.edu> for
398         debugging this.
400 Thu Dec 18 16:18:01 1997    <nw1@JIG>
402         * TAO_IDL/be/be_sequence.cpp (gen_name): Removed a local variable
403           <seq>.  It is no longer used.
405         * TAO_IDL/be/be_union.cpp (gen_client_stubs): Removed local
406           variables <bt> and <s>.  They are not longer used.
408 Thu Dec 18 15:50:01 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
410         * orbsvcs/orbsvcs/Makefile:
411           realclean was not removing all the IDL compiler generated
412           files.
414 Thu Dec 18 15:06:23 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
415         Thanks to Keith Nicewarner <knicewar@sanders.com>, Tom Richards
416         <tomr@mcmenterprise.com>, and Carlos O'Ryan <coryan@cs.wustl.edu>
417         for reporting bugs which led to  some of the changes below.
419         * TAO_IDL/be/be_array.cpp: Preliminary support for arrays. Not
420         complete.
422         * TAO_IDL/be/{be_operation, be_attribute}.cpp: The ParamData
423         structure *must* hold the "size" of the outermost level of the
424         return values and out parameters because the ORB has to allocate
425         memory for it and hence needs to know the size. We had a 0 in it
426         which crashed any return types that were variable in size.
428         * TAO_IDL/be/be_codegen.cpp: Added a new state for
429         unions. Corresponding change to the *.h file.
431         * TAO_IDL/be/be_decl.cpp: Added a method called "scope" that
432         returns the corresponding scope defined by this node (if one
433         exists). Added method to the *.h file also.
435         * TAO_IDL/be/be_scope.cpp: Added a method called "decl" that
436         returns the be_decl method corresponding to this scope. The header
437         file was also updated.
439         * TAO_IDL/be/{be_exception, be_state_exception}.cpp: I was making
440         the most stupid mistake of generating constructors per member
441         rather than one constructor that takes all the members as a
442         parameter.
444         * TAO_IDL/be/{be_sequence, be_state_sequence}.cpp: Changed the
445         naming scheme for anonymous sequences to avoid code bloat.
447         * TAO_IDL/be/be_state.cpp: Added template instantiation for
448         additional state to deal with code generation of members of
449         unions.
451         * TAO_IDL/be/be_state_structure.cpp: Made some changes so that
452         spurious code for array members doesn't get generated.
454         * TAO_IDL/be/{be_union, be_state_union}.cpp: Added a new state
455         because we were not generating code for union members that were
456         sequences or structs.
458         * TAO_IDL/be/be_type.cpp: Modified netsed_type_name to use the new
459         methods on class be_decl/be_scope.
461         * TAO_IDL/be/be_union_branch.cpp: gen_client_stubs uses the same
462         strategy as the other gen_client methods.
464         * TAO/tao/deep_free.cpp: In deep_free of structures, instead of
465         passing the address of a string member to be freed, we were simply
466         passing the string that led to a segmentation fault. A careful
467         code review is necessary.
469         * TAO/tao/orb_core.cpp: Made "use_ior" as default as ooposed to
470         using the URL based scheme for IORs. This was necessary to have
471         interoperability with other ORBs.
473         * TAO/tao/poa.cpp: The server request was being released
474         immediately after returning from the dispatch method. This should
475         be done after all return/inout/out parameters are marshaled.
477 Tue Dec 17 12:53:01 1997  Brian Mendel  <brian.r.mendel@boeing.com>
479         * tao/encode.cpp: Additional changes for wchar's
481 Tue Dec 17 10:37:45 1997  Brian Mendel  <brian.r.mendel@boeing.com>
483         * tao/TAO.dsp: Removed obsolete files from the VC++ project.
484           Changed name of folder from Include Files to Inline Files.
485           Inserted new header files for classview.
487         * TAO_IDL/tao_idl.dsp: Added missing be_state_exception.cpp to the
488           the project to eliminate link error.
490         * tao/corbacom.cpp: Inserted wslen and wscpy back to handle wchar
491           problems with VxWOrks and GHS.
493         * tao/encode.cpp: Inserted wslen and wscpy back to handle wchar
494           problems with VxWOrks and GHS.
496 Tue Dec 16 18:29:42 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
498         * orbsvcs/README:
499         * docs/orbsvcs.html:
500           Started up the documentation for TAO services, at this point
501           only the directory hierarchy is explained.
503 Tue Dec 16 08:49:11 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
505         * TAO_IDL/be_include/be_codegen.h: Added three more states for
506         return types to be generated for operator [] of sequences of
507         strings and object references.
509         * TAO_IDL/be_include/be_sequence.h: Added enum constants to
510         indicate what kind of managed type is handled by the sequence. For
511         sequences other than that of strings and objrefs, this enum const
512         is MNG_NONE. Added a new method that returns the managed type.
514         * TAO_IDL/be/{be_sequence, be_state_sequence.cpp}: Added code to
515         generate sequences of strings and objrefs. This requires
516         generating special "managed" objects. In addition, for
517         be_state_sequence.cpp, we were not handling the case where base
518         types of sequences were not having any scope which resulted in
519         segmentation faults.
521         * TAO_IDL/be/{be_state_argument, be_state_operation}.cpp: Some
522         small bugs fixed. These included lack of a whitespace in the
523         generated code as well as spurious extra level of indirection
524         getting generated.
526         * TAO_IDL/be/be_type.cpp: "nested_type_name" now checks if the
527         scope with which are comparing is NUL or not before proceeding
528         further. Such a situation may arise for sequences whose base types
529         are anonymous (e.g., strings) and have no enclosing scope.
531         * TAO/tao/managed_types.{h,cpp,i}: Removed. No more needed as teh
532         code is generated by the IDL compiler. Accordingly modified
533         corb.h and did a "make depend" on the Makefile.
535         * TAO/docs/releasenotes/index.html: Updated to reflect new changes
536         as well as TO-DO stuff such as adding support for TIEs.
538 Mon Dec 15 22:31:50 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
540         * TAO version 0.0.43, released Mon Dec 15 22:31:50 1997.
542 Mon Dec 15 19:13:51 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
544         * tao/Timeprobe.cpp:
545           Removed Solaris specific code, somehow it survived from some
546           debugging session. Thanks to Arturo Montes
547           <mitosys@colomsat.net.co> for pointing out this bug.
549 Mon Dec 15 16:52:58 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
551         * TAO-INSTALL.html: Added some explanations for setting CPP_PATH
552           on NT.
554 Mon Dec 15 16:49:58 1997  David L. Levine  <levine@cs.wustl.edu>
556         * tests/Cubit/TAO/IDL_Cubit/clnt.cpp (cube_sequence): declare
557           local variables "l" and "j" as u_int instead of int, to avoid
558           signed/unsigned comparison.
560 Thu Dec 11 16:44:26 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
562         * orbsvcs/Scheduling_Service/Config_Scheduler.cpp:
563           Fixed typo missed on the previous release.
565 Thu Dec 11 22:18:52 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
567         * TAO_IDL/be/be_interface.cpp: Moved the code generation for the
568         _var and _out classes before the actual class declaration, but
569         after the forward declaration. This was necessary if any elements
570         in the scope of the interface are defined to be of the same type
571         as that interface. In such a situation those elements are defined
572         to be of the _var type. Hence the declaration for _var and _out
573         must precede the class declaration.
575 Thu Dec 11 22:00:52 1997  Sergio Flores  <sergio@tango.cs.wustl.edu>
577         * orbsvcs/Naming_Service/Naming_Service.cpp (main): Fixed a bug
578         related to returning an empty string as the ior in the reply from
579         the multicast request.
581 Thu Dec 11 14:06:50 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
583         * TAO_IDL/be/{be_exception,be_state_exception}.cpp: Support for
584         exceptions added. Added a new file called
585         "be_state_exception.cpp".
587         * TAO_IDL/be_include/be_state.h: Added a new singleton for
588         be_state_exception.
590         * TAO_IDL/be/be_state.cpp: Template instantiations for
591         be_state_exception.
593         * TAO/docs/releasenotes/index.html: Updated to include exception
594         support.
596         * TAO/tao/except.{h,cpp}: Moved the TypeCode member from the
597         private section to the protected section so that derived classes
598         can set it. Also, changed the variable from _type to type_ to
599         stick to the ACE design standards.
601 Thu Dec 11 00:01:41 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
603         * TAO version 0.0.42, released Thu Dec 11 00:01:41 1997.
605 Wed Dec 10 23:04:04 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
607         * orbsvcs/Scheduling_Service/Config_Scheduler.cpp:
608           Still struggling with g++, it seems to use the wrong cast for
609           IDL generated T_out classes.
611         * orbsvcs/tests/Logger/Makefile:
612         * orbsvcs/tests/Logger/clnt.cpp:
613         * orbsvcs/tests/Logger/clnt.h:
614         * orbsvcs/tests/Logger/svr.cpp:
615           These files were missed in the orbsvcs hierarchy
616           reorganization.
618 Wed Dec 10 22:38:08 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
620         * TAO/tests/Cubit/TAO/DII_Cubit: Fixed the  hand-crafted code to
621         make use of the many changes that were made to the dispatching
622         scheme as well as changes made to the signature of the skeletons
623         for operations of interfaces.
625 Wed Dec 10 21:41:48 1997  Sergio Flores  <sergio@tango.cs.wustl.edu>
627         * docs/releasenotes/index.html: Updated the release notes on the
628         Naming Service.
630 Wed Dec 10 20:13:57 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
632         * Makefile:
633           Added orbsvcs to the hierarchy.
635         * The orbsvcs directory was completely reorganized, in preparation
636           for its official release. The new hierarchy is:
637           - orbsvcs/orbsvcs: Contains a library with:
638             + The client stubs for the services.
639             + Common utility classes to access the services.
640             + The server skeletons, but not their implementation.
641           - orbsvcs/Naming_Service: the COSS Naming Service.
642           - orbsvcs/Scheduling_Service: TAO Real-Time Scheduling Service.
643           - orbsvcs/Event_Service: TAO Real-Time Event Service.
644           - orbsvcs/tests: test programs and examples.
646         * docs/releasenotes/index.html:
647           Updated documentation on the Event Service and its friends.
649 Wed Dec 10 19:57:07 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
651         * tests/Cubit/TAO/IDL_Cubit/cubit_i.cpp (Cubit_i::cube_sequence):
652         Changed to explicitly use the vector_out::ptr() method to get a
653         ptr.  It seems that g++ wanted to interpret this expression
654         (output == 0) differently from Sun's C++, and this made both
655         interpret it in the desired way.
657 Wed Dec 10 14:23:24 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
659         * TAO_IDL/be/be_state_structure.cpp:
660           Fixed a bug when handling typedefs.
661           It was generating code for imported types, we protected the
662           generation with a !imported(), thank to Andy Gokhale
663           <gokhale@cs.wustl.edu> for helping me on this.
665         * tao/connect.cpp:
666           Set the TCP_NODELAY option by default, otherwise oneway calls
667           are considerably slower.  It should have no effect for twoway
668           calls.  Anyway an option should be added to control this
669           behavior.
671 Wed Dec 10 13:15:11 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
673         * TAO_IDL/be_include/{be_array, be_decl, be_field, be_module,
674         be_operation, be_predefined_type, be_structure, be_typedef}.h:
675         Added a protected function called "compute_size_type" which is
676         invoked if the size type of a data structure is not known in
677         advance. This happens for structs, unions, arrays, and typedefs
678         whose size type depends on their base types.
680         * TAO_IDL/be/{be_array, be_decl, be_field, be_module,
681         be_operation, be_predefined_type, be_structure, be_typedef}.cpp:
682         Implementation of the "compute_size_type".
684         * TAO_IDL/be/be_decl.cpp: Changed code that sets "size_type" so
685         that we first see if we are unknown in which case we set our size
686         type. However, once we are VARIABLE, no body can reset us to
687         fixed. Similarly, the overloaded size_type method that return the
688         size type first checks if our size is still unknown in which case
689         it calls for "compute_size_type". This is very essential for data
690         types defined in an imported (included) *.idl file. Thanks to Tom
691         Richards (tomr@mcmenterprise.com) for reporting the bug with
692         included file which resulted in this change.
694         * TAO_IDL/be/be_state_attribute.cpp: Included a case for
695         IN_PARAM_TYPE_CH for strings (had previously forgotten to do so).
697         * TAO_IDL/be/{be_state_structure, be_structure, be_field}.cpp:
698         Revamped so that we use the same switch based technique in
699         be_state_structure.cpp to generate code. For fields that are
700         sequences or structures or unions, we also generate their code.
702         * TAO_IDL/be/be_state_argument.cpp: Thanks to Tom Richards and
703         Carlos O'Ryan for noticing a bug when we use out sequences. There
704         used to be a seg fault in deep_free.cpp because a NUL pointer was
705         being owned by an Any and getting freed. In the server skeleton,
706         for out params we now generate code after the upcall is made so
707         that for out parameter value is inserted in the NVList that is
708         marshaled by the server.
710         * TAO_IDL/be/be_interface.cpp: In the generated call to _is_a, we
711         were calling CORBA::Object::_is_a if a remote call is
712         necessary. However, MSVC++ cannot handle a call of the form
713         CORBA::Object::_is_a. So we have to generate code that uses
714         ACE_CORBA_3 so as to be portable. Thanks to Nanbor Wang
715         (nw1@cs.wustl.edu).
717         * TAO/test/Cubit/TAO/IDL_Cubit/clnt.cpp: Changed the type of the
718         variable that was passed as the out parameter to cube_sequence.
720 Wed Dec 10 01:02:36 1997  Chris Cleeland  <cleeland@tango.cs.wustl.edu>
722         * tao/iiopobj.cpp (set): Added a special case to IIOP Profile::set
723         so that if the address is INADDR_ANY, it uses the host name, but
724         otherwise uses the IP address.  This eliminates the cryptic
725         appearance of the address "0.0.0.0" in a server's IOR.
727 Tue Dec  9 21:48:52 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
729         * tests/Cubit/TAO/IDL_Cubit/clnt.cpp:
730           The sequence test is not running right now, I'm commenting it
731           out until we can make it work properly.
733 Tue Dec  9 18:02:43 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
735         * tao/orb_core.cpp: The moral of this changelog entry is to be
736         VERY careful when cutting and pasting code...the
737         resource_factory() accessor should not be setting the
738         client_factory_ member at all!
740 Tue Dec  9 11:55:50 1997  Chris Cleeland  <cleeland@tango.cs.wustl.edu>
742         * tao/compat/objbase.h: Added NOERROR as #define if we're not on
743         WIN32 so that IDL-generated code would continue to work.
745         * tao/tao_internals.cpp: Changed faked Resource Factory resource
746         source specifier to "tss" rather than "global".
748         * tao/orb_core.*: Added resource_factory() accessor to
749         TAO_ORB_Core.  This will create a default instance if it can't
750         locate one in the Service Repository, which will allow
751         applications to not encounter a hard failure when a svc.conf file
752         is missing.  A warning message is emitted stating that a default
753         is being used.  Applications should not rely on the default
754         settings, as it is very likely that the applicat might require
755         alternate settings for proper desired operation.
757         * tao/default_server.*: Added TAO_Reactive_Strategy template
758         class to use in place of the ACE_Reactive_Strategy.  It's only
759         difference from ACE_Reactive_Strategy is that instead of using the
760         reactor provided in the open method, it always uses that found
761         through the TAO_ORB_Core_instance().  This fix was motivated by a
762         general problem which was only observable on VxWorks with a
763         special pseudo-network transport.
765         * tao/connect.cpp: Added code to fail gracefully if socket buffer
766         size changes are not supported.
768 Mon Dec  8 13:11:46 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
770         * docs/releasenotes/index.html:
771           Added more information on how the Event Channel and friends are
772           going.
774         * orbsvcs/bin/Naming_Service/svc.conf:
775           Removed some foreign ^M from the file.
777         * tao/Makefile:
778         * tao/connect.cpp:
779         * tao/giop.cpp:
780         * tao/orbobj.cpp:
781         * tao/Timeprobe.i:
782         * tao/Timeprobe.h:
783         * tao/Timeprobe.cpp:
784           Added a instrumentation class to measure time interval, also
785           instrumented some code, as part of the ongoing effort to
786           optimize the EC, unfortunately the problems are not in TAO ;-)
787           The code is only instrumented if compiled using probe=1, no
788           overhead is introduced in normal compiles.
790         * tests/Cubit/TAO/IDL_Cubit/cubit.idl:
791         * tests/Cubit/TAO/IDL_Cubit/clnt.cpp:
792         * tests/Cubit/TAO/IDL_Cubit/clnt.h:
793         * tests/Cubit/TAO/IDL_Cubit/cubit_i.cpp:
794         * tests/Cubit/TAO/IDL_Cubit/cubit_i.h:
795           Addded code to test sequences (as input and output parameters)
796           they don't work (yet).
798         * orbsvcs/lib/Makefile:
799         * orbsvcs/lib/Timeprobe.h:
800         * orbsvcs/lib/Timeprobe.i:
801         * orbsvcs/lib/Timeprobe.cpp:
802           The file was moved toTAO_ROOT/tao.
804         * orbsvcs/lib/Scheduler_Factory.cpp:
805           Fixed default dump file, it was using stdout!
807 Sat Dec 06 15:42:25 1997    <nw1@DINGO>
809         * tests/Cubit/TAO/IDL_Cubit/{server,client}.dsp: Updated link time
810           library names.
812         * tao/any.cpp:
813         * tao/any.h:
814         * tao/corba.h:
815         * tao/corbacom.h:
816         * tao/decode.cpp:
817         * tao/encode.cpp:
818         * tao/except.cpp:
819         * tao/except.h:
820         * tao/giop.cpp:
821         * tao/iiopobj.cpp:
822         * tao/iiopobj.h:
823         * tao/iioporb.cpp:
824         * tao/iioporb.h:
825         * tao/nvlist.cpp:
826         * tao/nvlist.h:
827         * tao/object.cpp:
828         * tao/object.h:
829         * tao/object.i:
830         * tao/orbobj.cpp:
831         * tao/orbobj.h:
832         * tao/orbobj.i:
833         * tao/poa.cpp:
834         * tao/poa.h:
835         * tao/principa.cpp:
836         * tao/principa.h:
837         * tao/request.cpp:
838         * tao/request.h:
839         * tao/stub.h:
840         * tao/svrrqst.cpp:
841         * tao/svrrqst.h:
842         * tao/typecode.cpp:
843         * tao/typecode.h:
844         * tao/compat/initguid.h:
845         * tao/compat/objbase.h: Removed dependencies on Microsoft's DCOM
846           files.  Below is a list of names that got changed.
848             HRESULT -> TAO_HRESULT
849             IID -> TAO_IID
850             IUnknown -> TAO_IUnknown
851             IID_IUnknown -> IID_TAO_IUnknown
852             SCODE -> TAO_SCODE
853             NOERROR -> TAO_NOERROR
854             E_NOINTERFACE -> TAO_E_NOINTERFACE
855             VARTYPE -> TAO_VARTYPE
856             VARENUM -> TAO_VARENUM
857             CY -> TAO_CY
858             VARIANT -> TAO_VARIANT
859             DATE -> TAO_DATE
861 Fri Dec  5 11:42:25 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
863         * tao/iiopobj.cpp (set): Changed the IIOP::Profile::set() methods
864         which take an ACE_INET_Addr to retrieve the host IP address rather
865         than host name for storage in the profile.  This is motivated by
866         the following situation: machine has 3 interfaces (not including
867         loopback), and it is desired that clients and servers communicate
868         across only one interface.
870         When our IDL_Cubit example's factory created new Cubit instances,
871         the set() method would set the host name for that IIOP::Profile to
872         whatever ACE_INET_Addr::get_host_name() returned.  In this case,
873         the IP addr for interface 3 (which is not the primary interface)
874         would return a *LIST* of names in which the first name was that of
875         the primary interface.  Thus, the IP address used by the client
876         would be wrong.
878         * tao/object.h: Minor corrections to header comments.
880         * tao/{orb_core,orbobj}.{h,cpp}: Moved server_factory and
881         client_factory ptr storage from CORBA_ORB to TAO_ORB_Core.  It
882         really didn't belong there in the first place.
884         * tao/poa.cpp: CTOR now fetches server factory ptr from the
885         TAO_ORB_Core rather than from the ORB.
887 Thu Dec  4 18:20:55 1997  Chris Gill  <cdgill@cs.wustl.edu>
889         * TAO_IDL/tao_idl.dsp: Changed hard coded path for cl.exe to CPP_PATH
890           environment variable
892 Thu Dec  4 11:23:55 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
894         * TAO_IDL/include/{idl,ast,utl_idlist, utl_identifier}.h: removed
895         #include "ace/stdcpp.h" since this file was removed from
896         ACE. Instead we now include "ace/streams.h" in idl.h
898         Also made make depend on all the Makefiles.
900 Wed Dec  3 16:08:34 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
902         * orbsvcs/lib/Event_Utilities.cpp:
903         * orbsvcs/lib/Event_Utilities.i:
904         * orbsvcs/lib/RtecEventComm.idl:
905           Added some more time-stamps to the events to track and measure
906           the delays as they move on the EC.
908         * orbsvcs/lib/RtecEventChannelAdminC.cpp:
909         * orbsvcs/lib/RtecEventChannelAdminC.h:
910         * orbsvcs/lib/RtecEventChannelAdminC.i:
911         * orbsvcs/lib/RtecEventChannelAdminS.cpp:
912         * orbsvcs/lib/RtecEventChannelAdminS.h:
913         * orbsvcs/lib/RtecEventChannelAdminS.i:
914         * orbsvcs/lib/RtecEventCommC.cpp:
915         * orbsvcs/lib/RtecEventCommC.h:
916         * orbsvcs/lib/RtecEventCommC.i:
917         * orbsvcs/lib/RtecEventCommS.cpp:
918         * orbsvcs/lib/RtecEventCommS.h:
919         * orbsvcs/lib/RtecEventCommS.i:
920         * orbsvcs/lib/RtecSchedulerC.cpp:
921         * orbsvcs/lib/RtecSchedulerC.h:
922         * orbsvcs/lib/RtecSchedulerC.i:
923         * orbsvcs/lib/RtecSchedulerS.cpp:
924         * orbsvcs/lib/RtecSchedulerS.h:
925         * orbsvcs/lib/RtecSchedulerS.i:
926           Thanks to Andy Gokhale efforst the IDL compiler is able to emit
927           proper code for the EC&friends, hence I'm removing the
928           hand-crafted files.
930 Wed Dec  3 11:12:48 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
932         * TAO_IDL/be/be_interface.cpp: Had forgotten to emit code that
933         adds one more cast to the base POA_* class in the generated *S.i
934         file.
936 Wed Dec 03 09:40:36 1997  David L. Levine  <levine@cs.wustl.edu>
938         * tao/Makefile: added TAO_PLATFORM_SVC_CONF_FILE_NOTSUP to
939           CPPFLAGS on CHORUS.  Thanks to Wei Chiang for this change.
941 Tue Dec  2 15:47:09 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
943         * TAO_IDL/be/be_interface.h: Added some helper methods to generate
944         additional code in the form of larger operation tables, and
945         skeletons. This situation arises when we have single/multiple
946         inheritance of interfaces.
948         * TAO_IDL/be_include/be.h: Included ace/Containers.h for the
949         ACE_Unbounded_Queue that uses the breadth-first strategy used in
950         be_interface.cpp
952         * TAO_IDL/be/{be_interface,be_operation,be_attribute}.cpp: Added code
953         to generate a new "virtual void dispatch" method on the skeleton
954         classes. The dispatch method enables us to access the most derived
955         type when invoking the skeleton for a method. The skeletons
956         instead of taking a CORBA::Object_ptr, now take void*. The
957         skeletons themselves cast this void* to the appropriate POA_*
958         type.
960         In addition to the above, for the case of inheritance of
961         interfaces, it is not appropriate to pass a pointer to the most
962         derived class as a void* to the skeleton of a base class and cast
963         that to the POA_* of the base class. So we generate inlined code
964         for skeletons of methods in the most derived class even if those
965         methods were defined in the base classes. These inlined skeletons
966         simply cast the object pointer to the right type and invoke the
967         corresponding skeleton of the base class method.
969         be_interface.cpp defines a template method to traverse the entire
970         inheritance graph. This traversal is done using a breadth-first
971         traversal. This traverse method takes a pointer to one of the
972         static helper methods defined on class be_interface. Each helper
973         achieves a different purpose such as generation of extended
974         operation tables, providing comparisons of repositoryIDs of base
975         classes in the _is_a methods of derived classes.
977         The client-side class now defines a virtual CORBA::Boolean _is_a
978         method. This uses local knowledge of repository ids thereby
979         preventing the expensive remote call in most cases. All changes
980         made in be_interface.cpp
982         * TAO/tao/corbacom.h: Changed the signature of TAO_Skeleton so that
983         it uses void*obj and a void *context.
985         * TAO/tao/object.h: Added a virtual dispatch method as explained
986         above.
988         * TAO/tao/orb.h: Redefinition of TAO_Skeleton removed.
990         * TAO/tao/poa.cpp: Changed the demultiplexing code to reflect the
991         change made with the dispatch method. The poa on finding the right
992         object corresponding to the key, now invokes the dispatch method
993         on that object which by dynamic binding invokes the dispatch
994         method of the POA_* class.
996 Tue Dec 02 15:29:41 1997    <nw1@CHA-CHA>
998         * tao/{connect,orb_core}.h: Moved Win32 specific template
999           specialization declaration from connect.h to orb_core.h because
1000           the definition had moved to orb_core.i.
1002         * tao/object.cpp: Removed conditional directives around
1003           DEFINE_GUID for IID_IUnknown.  This is now defined for Win32
1004           also.
1006         * tao/TAO.dsp: Removed macro definition __IIOP_BUILD.  It was not
1007           used anywhere.
1009 Tue Dec  2 10:25:47 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
1011         * tao/corba.h:
1012           Fixed some problems with the ACE_RETHROW macros.
1014         * orbsvcs/lib/Makefile:
1015         * orbsvcs/lib/Timeprobe.h:
1016         * orbsvcs/lib/Timeprobe.i:
1017         * orbsvcs/lib/Timeprobe.cpp:
1018           Added a high resolution timer facility, to measure the delays in
1019           the Event Channel and in its client.
1021         * orbsvcs/lib/RtecEventComm.idl:
1022           Changed the time_ field of Event to a double. It should be an
1023           structure or a long long, but double is big enough to store
1025         * orbsvcs/lib/RtecEventChannelAdminC.cpp:
1026         * orbsvcs/lib/RtecEventChannelAdminS.cpp:
1027         * orbsvcs/lib/RtecEventCommC.cpp:
1028         * orbsvcs/lib/RtecEventCommC.h:
1029         * orbsvcs/lib/RtecEventCommS.cpp:
1030         * orbsvcs/lib/RtecSchedulerC.cpp:
1031         * orbsvcs/lib/RtecSchedulerC.h:
1032         * orbsvcs/lib/RtecSchedulerC.i:
1033         * orbsvcs/lib/RtecSchedulerS.cpp:
1034         * orbsvcs/lib/RtecSchedulerS.h:
1035           Regenerated the files using the newest IDL compiler; still some
1036           hand crafting due to inherited classes.
1038 Tue Dec  2 03:12:50 1997  Sergio Flores  <sergio@tango.cs.wustl.edu>
1040         * tao/orbobj.cpp (resolve_name_service): Check for errors when
1041         resolving using the "NameService" environment variable.
1043         * orbsvcs/bin/Naming_Service/CosNaming_i.cpp (NS_NamingContext):
1044         * orbsvcs/bin/Naming_Service/CosNaming_i.h (NS_NamingContext):
1045         - Added constructor that takes a key to initialize the object,
1046         instead of using the default name generation.
1047         - Enabled some exceptions that are already supported.
1049         * orbsvcs/bin/Naming_Service/svr.cpp (main): Create first naming
1050         context with key "NamingContext".  And minor changes.
1052         * tests/Cubit/CORBAplus/IDL_Cubit/Makefile:
1053         * tests/Cubit/CORBAplus/IDL_Cubit/README:
1054         * tests/Cubit/CORBAplus/IDL_Cubit/clnt.cpp:
1055         * tests/Cubit/CORBAplus/IDL_Cubit/clnt.h:
1056         * tests/Cubit/CORBAplus/IDL_Cubit/cubit.idl:
1057         * tests/Cubit/CORBAplus/IDL_Cubit/cubit_i.cpp:
1058         * tests/Cubit/CORBAplus/IDL_Cubit/cubit_i.h:
1059         * tests/Cubit/CORBAplus/IDL_Cubit/svr.cpp: Ported the IDL cubit
1060         example to CORBAplus.  Currently, the calls using DII are not
1061         ported, so only the "cube average" and the "cube_union_stub" stats
1062         are printed.
1064 Mon Dec  1 16:51:08 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
1066         * tao/except.{h,cpp}: Changed semantics of CORBA::Exception so
1067         that the mere creation of them does not take a reference.
1068         Instead, the user of the exception is expected to call AddRef().
1069         CORBA::Environment has been modified (and even documented!) to
1070         reflect that as well.
1072 Sun Nov 30 17:08:56 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
1074         * orbsvcs/lib/RtecSchedulerC.cpp:
1075           Added missed parameter in do_call() for
1076           RtecScheduler::Scheduler::set().
1078 Sat Nov 29 13:34:58 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
1080         * tao/stub.i (STUB_Object):
1081           No need to release type_id, since it is a String_var now. Thanks
1082           to Wei Chiang <chiang@tele.nokia.fi> for pointing this out.
1084         * giop.cpp:
1085           If things go wrong TAO_GIOP::send_request will close the
1086           handler and set it to zero, but only a temporary was
1087           affected, I decided to set the original value to zero also;
1088           based on the return value.
1090 Wed Nov 26 23:24:57 1997    <cleeland@cs.wustl.edu>
1092         * TAO version 0.0.41, released Wed Nov 26 23:24:57 1997.
1094 Wed Nov 26 16:40:29 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
1096         * tests/Cubit/TAO/IDL_Cubit/clnt.cpp: Changed release calls to use
1097         the CORBA standard version rather than the non-standard TAO
1098         Release() method.  Also moved the client's parse_args() AFTER the
1099         ORB_init() so that -ORB parameters were parsed correctly.
1101         * tao/params.*: Added storage for send and receive socket buffer
1102         size to be used for all newly created sockets.  These sizes are
1103         initialized to ACE_DEFAULT_MAX_SOCKET_BUFSIZ, and can be changed
1104         by the user by using -ORBsndsock and -ORBrcvsock.
1106         * tao/orbobj.h: Added documentation.
1108         * tao/orb_core.i: Changed system-specific conditional compilation
1109         to use the more general ACE_LACKS_TEMPLATE_SPECIALIZATION.
1111         * tao/orb_core.cpp: Added code to make -ORBsndsock and -ORBrcvsock
1112         options actually work.  Added -ORBpreconnect option to implement
1113         pre-cached connections.
1115         * tao/giop.cpp: Removed the old static inline version of
1116         start_message().  Also changed to use send_n() to guarantee
1117         correct blocking nature on Win32 with the WFMO Reactor.
1119         * tao/connect.cpp: Changed set_option() calls to use the socket
1120         buffer sizes stored in the TAO_ORB_Parameters instance.  Also
1121         added a correct environment-clearing call before initializing a
1122         request.
1124         * tao/client_factory.h: Removed extraneous code.
1126         * tao/{connect,any,giop,iiopobj,marshal,nvlist,objtable,optable,
1127                orb_core,poa,principa,stub,svrrqst,typecode}.h:
1128         Addressed or assigned some '@@' comments.
1130         * docs/releasenotes/orbcore.html: Added information regarding new
1131         options, known bugs, etc.
1133         * docs/Options.html: Added documentation for new -ORBpreconnect
1134         option.
1136         * TAO_IDL/be/Makefile: Added an explicit PIC=-fPIC for when g++ is
1137         being used as the compiler.  This fixes the linker complaints.
1139 Sat Dec 20 14:57:30 1997    <nw1@CHA-CHA>
1141         * All MSVC 5.0 project files: Removed unnecessary library
1142           inclusions.  Most of them are not necessary.
1144 Tue Nov 25 20:49:24 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
1146         * tao/orbobj.h:
1147         * tao/orbobj.cpp:
1148         * tao/orb_core.cpp:
1149         * tao/params.h:
1150         * tao/params.cpp:
1151           Removed the parameters to specify the event service and schedule
1152           service IOR, the naming service is working now so it can be
1153           used. And the support in "resolve_initial_references".
1155         * tao/corbacom.i:
1156         * tao/decode.cpp:
1157           Reverted the previous change, but this time added proper
1158           comments: the spec says that a Naming_var taking a <char*> is
1159           *not* supposed to copy it. Hence the ObjRef decoder cannot
1160           release the string it just read.
1162 Mon Nov 24 20:40:47 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
1164         * tao/corbacom.i:
1165           Fixed string allocation problem for String_var(char*): if it
1166           does not copy the string we run into problems with the
1167           demarshalling code.
1169         * orbsvcs/lib/Event_Utilities.cpp:
1170         * orbsvcs/lib/Event_Utilities.h:
1171         * orbsvcs/lib/Event_Utilities.i:
1172         * orbsvcs/lib/RtecEventChannelAdmin.idl:
1173         * orbsvcs/lib/RtecEventChannelAdminC.cpp:
1174         * orbsvcs/lib/RtecEventChannelAdminC.h:
1175           Removed the unused forward_event parameter in the ConsumerQoS.
1177         * orbsvcs/lib/RtecSchedulerC.h:
1178         * orbsvcs/lib/RtecSchedulerC.i:
1179           Hand crafted the T_out constructors to take a "const T_out&"
1180           instead of just "T_out&".
1182 Sat Nov 22 18:21:10 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
1184         * TAO_IDL/be_include/be_codegen.h, be/be_codegen.cpp: Added a
1185         number of states to handle attributes
1187         * TAO_IDL/be/{be_attribute,be_state_attribute}.cpp: Code added to
1188         handle attributes. This code is a mix of code that is used to
1189         handle operations as well as arguments because for attributes we
1190         have 2 methods, one to set the value and one which returns the
1191         value. For a readonly attribute, there is only the get method.
1193         A special note: Due to the large switch statement, I had to use
1194         -fPIC for g++. We are working on abstracting all the commin
1195         functionality once we have the basic IDL compiler working.
1197         * TAO_IDL/be/be_interface.cpp: Operation table now also includes
1198         methods to set and get the attributes if they are present. In
1199         addition, the variable name for the operation tables is now the
1200         full flattened name to avoid conflicts.
1202         * TAO_IDL/be/be_sequence.cpp: In the length method, the index of
1203         lookp variable "i" is changed from "int" to CORBA::ULong as g++
1204         was issuing a warning.
1206         * TAO_IDL/be/be_string.cpp, be_state_argument,cpp: Proper handling
1207         of in, inout, and out strings that are either anonymous or are
1208         typedefed.
1210 Fri Nov 21 13:22:39 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
1212         * TAO version 0.0.40, released Fri Nov 21 13:22:39 1997.
1214 Thu Nov 20 10:31:24 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
1216         * tao/orbconf.h (SIZEOF_LONG_DOUBLE): Made sure this is defined
1217         properly for Chorus.  Thanks to Wei Chiang <chiang@tele.nokia.fi>
1218         for submitting these!
1220         * tao/orb_core.cpp (init): Added some changes for Chorus.  Thanks
1221         to Wei Chiang <chiang@tele.nokia.fi> for submitting these!
1223         * tao/object.cpp (_is_a): Explicitly specify which conversion
1224         operator to use when comparing type_id to 0.
1226 Thu Nov 20 00:10:52 1997  Sergio Flores  <sergio@cs.wustl.edu>
1228         * orbsvcs/tests/Logger/clnt.h :
1229         * orbsvcs/tests/Logger/clnt.cpp (Logger_Client): Fixed a bug
1230         dealing with using "_bind" when the naming service is not
1231         available.
1233 Thu Nov 20 00:06:03 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
1235         * TAO version 0.0.39, released Thu Nov 20 00:06:03 1997.
1237 Thu Nov 20 00:01:06 1997  Douglas C. Schmidt  <schmidt@merengue.cs.wustl.edu>
1239         * tao/Makefile: Reordered the files so they are built in
1240         alphabetic order (within each grouping of targets).  This makes it
1241         easier to see how the compilation process is doing ;-).
1243 Wed Nov 19 22:59:18 1997  Sergio Flores  <sergio@cs.wustl.edu>
1245         * tao/orbobj.cpp (resolve_name_service): Minor change to output
1246         debug statement.
1248 Wed Nov 19 23:01:46 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
1250         * TAO_IDL/be/be_state_operation.cpp: Fixed the problem with
1251         strings as return values.  Thanks to Mark L Boriack
1252         <mark@vtcibm4a> for reporting this.
1254 Wed Nov 19 20:48:01 1997  James C Hu  <jxh@cs.wustl.edu>
1256         * tests/Thruput_test/server.cpp: Commented out some unreachable
1257           code at the bottom of main.
1259 Wed Nov 19 19:04:53 1997  Sergio Flores  <sergio@tango.cs.wustl.edu>
1261         * tao/decode.cpp (decode): Added a cast so that compiler would
1262         know which operator to call.
1264         * orbsvcs/bin/Naming_Service/svr.cpp (handle_input): Change port
1265         number received to host byte order.  Minor changes.
1267         * tao/orbobj.cpp (resolve_name_service): Send port number in
1268         network byte order.
1270 Wed Nov 19 17:45:52 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
1272         * tests/Cubit/TAO/IDL_Cubit/clnt.cpp: Put in proper release of
1273         resources after _narrow operation.
1275         * tao/stub.h: Used CORBA::String_var as the underlying type for
1276         'type_id' in STUB_Object.  In the long run this may be a bad idea
1277         for performance considerations, but we may be able to improve that
1278         by improving the implementation of String_var.
1280         * tao/orbobj.cpp: Removed unreachable ACE_NOTSUP_RETURN.
1282         * tao/decode.cpp: Made allocation and free semantics of
1283         'type_hint' consistent with its type of CORBA::String.
1285 Wed Nov 19 17:33:42 1997  Sumedh Mungee  <sumedh@lindy.cs.wustl.edu>
1287         * Task_Client.cpp: Fixed error_count.. Thanks to James Hu.
1289 Wed Nov 19 17:20:45 1997  James C Hu  <jxh@cs.wustl.edu>
1291         * TAO_IDL/be/be_operation.cpp: Removed an unreachable return
1292           statement.  There was already a return above it.
1294         * TAO_IDL/ast/ast_expression.cpp: Added casts to comparisons of
1295           char variables to 0, since chars are unsigned by default in
1296           SGI.
1298         * tests/Cubit/TAO/MT_Cubit/client/Task_Client.cpp: Removed a
1299           couple of unreachable return statements.  There are still
1300           unreachable statements remaining.  Need help with them.
1302         * tests/Cubit/TAO/IDL_Cubit/clnt.cpp:
1303         * tests/Cubit/TAO/DII_Cubit/clnt.cpp:
1304           Meaningless type qualifier (const ...) removed.
1306           Some functions were returning `retval' before it was set.  I had
1307           these functions return a passed in paramenter instead.
1309 Wed Nov 19 13:50:36 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
1311         * TAO version 0.0.38, released Wed Nov 19 13:50:36 1997.
1313 Wed Nov 19 13:11:53 1997  David L. Levine  <levine@cs.wustl.edu>
1315         * orbsvcs/lib/Scheduler_Factory.cpp (dump_schedule): changed loop
1316           index from int to u_int to avoid signed/unsigned comparison.
1317           (use_runtime): return 0.
1319         * orbsvcs/lib/Event_Utilities.cpp (debug): changed loop
1320           index from int to u_int to avoid signed/unsigned comparison.
1322 Wed Nov 19 12:22:50 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
1324         * tao/orbobj.cpp (resolve_name_service): Reverted some of the
1325         minor changes below, specifically the use of ACE_ERROR_RETURN
1326         rather than ACE_ERROR/return.  ACE_ERROR_RETURN cannot be used
1327         as-is because the 2nd parameter is used as an 'int' to specify the
1328         operational status, and the return value of this function is NOT
1329         an int.  Also had to add a missing semi-colon which caused none of
1330         the code to compile.
1332 Wed Nov 19 12:07:42 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
1334         * TAO version 0.0.37, released Wed Nov 19 12:07:42 1997.
1336 Wed Nov 19 10:37:19 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
1338         * orbsvcs/lib/Scheduler_Factory.cpp:
1339           The type declared for the rt_info array was wrong.
1341 Wed Nov 19 09:18:30 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
1343         * TAO version 0.0.36, released Wed Nov 19 09:18:30 1997.
1345 Wed Nov 19 09:15:15 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
1347         * tao/orbobj.cpp (resolve_name_service): Made a bunch of minor
1348           Changes for resolving the Naming service.
1350 Wed Nov 19 08:44:12 1997  Brian Mendel <brian.r.mendel@boeing.com>
1352         * tests/Cubit/TAO/DII_Cubit/default.bld:
1353         * tests/Cubit/TAO/DII_Cubit/clnt.bld:
1354         * tests/Cubit/TAO/DII_Cubit/svr.bld:
1355         * tests/Cubit/TAO/IDL_Cubit/default.bld:
1356         * tests/Cubit/TAO/IDL_Cubit/clnt.bld:
1357         * tests/Cubit/TAO/IDL_Cubit/svr.bld:
1358         * tests/Cubit/TAO/MT_Cubit/default.bld:
1359         * tests/Cubit/TAO/MT_Cubit/clnt.bld:
1360         * tests/Cubit/TAO/MT_Cubit/svr.bld:  Added build files in the new
1361           test structure for VxWorks using the GHS compiler.
1363         * tests/Cubit/Build: Removed the obsolete build directory for vxWorks.
1365 Wed Nov 19 07:47:13 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
1367         * TAO version 0.0.35, released Wed Nov 19 07:47:13 1997.
1369 Wed Nov 19 05:53:42 1997  Sergio Flores  <sergio@tango.cs.wustl.edu>
1371         * tests/Cubit/TAO/DII_Cubit/clnt.cpp:
1372         * tests/Cubit/TAO/DII_Cubit/clnt.h:
1373         * tests/Cubit/TAO/IDL_Cubit/clnt.cpp:
1374         * tests/Cubit/TAO/IDL_Cubit/clnt.h: Changed code to add loop
1375         around all cube calls, and make output more consistent.
1377         * orbsvcs/tests/Logger/Makefile:
1378         * orbsvcs/tests/Logger/ior_multicast.cpp:
1379         * orbsvcs/tests/Logger/ior_multicast.h: Removed unneeded
1380         ior_multicast.* source files from the logger example.  It now uses
1381         the resolve_initial_references() to use the naming service for its
1382         advertisement.
1384         * orbsvcs/lib/Makefile (realclean): Updated with realclean & clean
1385         rules to delete CosNamingS.* and CosNamingC.*
1387         * docs/releasenotes/index.html: Updated status of the naming
1388         service to working implementation.
1390         * orbsvcs/lib/CosNamingS.cpp:
1391         * orbsvcs/lib/CosNamingS.i:
1392         * orbsvcs/lib/CosNamingS.h:
1393         * orbsvcs/lib/CosNamingC.cpp:
1394         * orbsvcs/lib/CosNamingC.i:
1395         * orbsvcs/lib/CosNamingC.h: Removed these files from the
1396         repository, since the IDL compiler generates these correctly.
1398         * orbsvcs/bin/Naming_Service/CosNaming_i.cpp (list): Remove
1399         warning for unused variable.
1401         * orbsvcs/bin/Naming_Service/svr.h: Constructor of event handler
1402         for multicast doesn't need reply port anymore.
1404         * orbsvcs/bin/Naming_Service/svr.cpp (handle_input): Now receives
1405         the port number in the multicast request.  Suggested by Doug
1406         Schmidt.
1408         * tao/orbobj.cpp (resolve_name_service): changed return value
1409         variable to be signed.  Added code to send the port number in the
1410         multicast resolution mechanism as a CORBA::Short.
1412         * orbsvcs/bin/Naming_Service/NS_CosNaming.cpp (NS_ExtId):
1413         Reordered initializers in the constructor.
1415         * tests/Cubit/TAO/IDL_Cubit/clnt.h:
1416         * tests/Cubit/TAO/IDL_Cubit/clnt.cpp (run): Added a loop around
1417         all cube calls and added calls/sec stats for them.
1419         * tao/corba.h: Changed order of inclusion of marshal.i, due to
1420         warnings of the declaration of the inline function
1421         make_marshal_object().
1423         * tao/orbobj.i: reorder the declaration of inline
1424         CORBA_OBJ::Add_Ref(), to remove a warning.
1426         * tests/Cubit/TAO/MT_Cubit/server/svr.cpp (main):
1427         removed return statement that was causing a warning.
1429 Wed Nov 19 04:22:48 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
1431         * TAO version 0.0.34, released Wed Nov 19 04:22:48 1997.
1433 Tue Nov 18 01:29:00 1997    <nw1@COYOTE>
1435         * tao/TAO.dsp:  Added Arg_Shifter.cpp into project file.
1437 Tue Nov 18 18:53:57 1997  Sergio Flores  <sergio@polka.cs.wustl.edu>
1439         * TAO_IDL/be/be_state_typedef.cpp (gen_code):
1440         * TAO_IDL/be/be_state_structure.cpp (gen_code):
1441         * TAO_IDL/be/be_state_sequence.cpp (gen_code):
1442         * TAO_IDL/be/be_state_operation.cpp (gen_code):
1443         * TAO_IDL/be/be_state_array.cpp (gen_code): Comment out
1444         unreachable break statements.
1446         * TAO_IDL/ast/ast_array.cpp (n_dims):
1447         * TAO_IDL/include/ast_array.h (AST_Array::n_dims):
1448         * TAO_IDL/ast/ast_attribute.cpp (readonly):
1449         * TAO_IDL/include/ast_attribute.h (AST_Attribute::readonly):
1450         * TAO_IDL/ast/ast_argument.cpp (direction):
1451         * TAO_IDL/include/ast_argument.h (AST_Argument::direction):
1452         * tao/nvlist.h (CORBA_NamedValue::name):
1453         * TAO_IDL/include/utl_scope.h (UTL_Scope::scope_node_type):
1454         * TAO_IDL/ast/ast_predefined_type.cpp (pt):
1455         * TAO_IDL/include/ast_predefined_type.h (AST_PredefinedType::pt):
1456         removed const from declarations that it didn't have a meaning for.
1457         Also from return statements.  These changes were suggested by
1458         James Hu and the SGI compiler.
1460 Tue Nov 18 18:34:16 1997  Sumedh Mungee  <sumedh@lindy.cs.wustl.edu>
1462         * tests/Cubit/COOL/client.cpp: ORB_init is now called in
1463         Task_Client.cpp instead of the main program, to insure that its
1464         called in the right thread.
1466         * tests/Cubit/COOL/Task_Client.{h,cpp}: Used the COOL_Activity to
1467         create threads instead of ACE_Task.
1469         * tests/Cubit/COOL/server.cpp: Used the createActivity stuff to
1470         create threads.  The server now creates two servants, one for high
1471         and the other for low priority clients.
1473 Tue Nov 18 17:44:02 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
1475         * tao/corbacom.h: Added special case for CORBA::WChar to be a
1476         short on VxWorks/GreenHills.
1478         * TAO_IDL/be/be_state.cpp: Added template instantiations for SGI.
1480         * tao/deep_free.cpp (deep_free): Removed unused 'alignment'
1481         variable.
1483         * tao/deep_copy.cpp (deep_copy): Removed unused 'alignment'
1484         variable.
1486         * tao/encode.cpp (encode): Removed unused 'continue_encoding'
1487         variable.
1489         * tao/orbobj.cpp (POA_init): Removed options which were no longer
1490         supported/necessary, as well as their corresponding variables.
1492 Tue Nov 18 17:33:20 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
1494         * orbsvcs/lib/RtecEventChannelAdmin.idl:
1495         * orbsvcs/lib/RtecEventComm.idl:
1496           Changed several operations to "oneway" to avoid dead-locks in
1497           the Event Channel tests.
1499         * orbsvcs/lib/Runtime_Scheduler.h:
1500         * orbsvcs/lib/Runtime_Scheduler.cpp:
1501           This class is a servant, event though it is only used
1502           collocated, so it must inherit from the POA class.
1504         * orbsvcs/lib/Scheduler_Factory.cpp:
1505           Care must be exercised to create the Runtime_Scheduler instance
1506           only once the ORB is up and running.
1508         * orbsvcs/lib/CosNamingC.cpp:
1509         * orbsvcs/lib/CosNamingC.h:
1510         * orbsvcs/lib/CosNamingS.cpp:
1511         * orbsvcs/lib/CosNamingS.h:
1512         * orbsvcs/lib/RtecEventChannelAdminC.cpp:
1513         * orbsvcs/lib/RtecEventChannelAdminC.h:
1514         * orbsvcs/lib/RtecEventChannelAdminS.cpp:
1515         * orbsvcs/lib/RtecEventChannelAdminS.h:
1516         * orbsvcs/lib/RtecEventCommC.cpp:
1517         * orbsvcs/lib/RtecEventCommC.h:
1518         * orbsvcs/lib/RtecEventCommS.cpp:
1519         * orbsvcs/lib/RtecEventCommS.h:
1520         * orbsvcs/lib/RtecSchedulerC.cpp:
1521         * orbsvcs/lib/RtecSchedulerC.h:
1522         * orbsvcs/lib/RtecSchedulerS.cpp:
1523         * orbsvcs/lib/RtecSchedulerS.h:
1524           Regenerated all the stubs and skeletons using the latest IDL
1525           compiler, but still some hand crafting is required, namely for
1526           operations in base classes.
1528 Tue Nov 18 14:27:02 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
1530         * tao/cdr.cpp (CDR): Changed TAO_PURIFY to ACE_PURIFY.
1532         * tests/Cubit/TAO/MT_Cubit/serdatever/svr.cpp: Added code to put use a
1533         kinder, gentler high priority value on VxWorks.  This makes it
1534         easier for the machine to remain running. :-\
1536         * tao/corbacom.h: Added CVS id keyword.
1538         * tao/{corba.h,tao_internals.h,tao_internals.cpp}: Backed out
1539         tao_internals.h, which is not intended to be publicly visible.
1540         corba.h should contain only headers/inlines for things which
1541         should be externally visible.
1543 Tue Nov 18 04:00:46 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
1545         * tao/poa.cpp:
1546           An operation lookup on the dispatching code will cause an error
1547           message and the CORBA::BAD_OPERATION exception to be raised.
1549         * tao/orb_core.cpp:
1550           Somehow the options for setting the Event Service and the
1551           Scheduling Service IOR were lost. Eventually they must be
1552           removed, but we are still testing the Naming Service.
1554 Tue Nov 18 02:17:24 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
1556         * TAO version 0.0.33, released Tue Nov 18 02:17:24 1997.
1558 Tue Nov 18 02:03:22 1997  Sergio Flores  <sergio@tango.cs.wustl.edu>
1560         * orbsvcs/tests/Logger/svr.cpp:
1561         * orbsvcs/tests/Logger/clnt.cpp: This test example now uses the
1562         naming service in the server and client.  Also changed the code to
1563         have a default use in case the naming service is not available.
1565         * tao/orbobj.cpp (resolve_name_service): Fixed a bug, dealing with
1566         closing the endpoint of communication for the response of the
1567         multicast mechanism.
1569 Tue Nov 18 01:37:42 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
1571         * TAO_IDL/be/{be_operation.cpp,be_state_operation}.cpp: We now
1572         properly handle the declaration and assigning to the return value.
1574         * TAO_IDL/be/be_state_argument.cpp: Removed a spurious ()
1575         appearing after a function call.
1577         * TAO_IDL/be/{be_structure,be_union}.cpp: Carlos had removed the
1578         if !imported check in the member counting function, but it had
1579         crept in again, maybe due to me. So this is fixed again.
1581         * test/Cubit/TAO/IDL/svr.cpp: Removed the hack which was
1582         separating command line arguments starting with O. We leave this
1583         task to the newly added Arg_Shifter.
1585         * tao.orbobj.cpp: In ORB_init, the call to
1586         TAO_ORb_Core_instance->init needed a char ** argv and we were
1587         passing a char * const* argv. So we cast this. g++ was giving this
1588         error.
1590         * TAO_IDL/be_include/be_codegen.h, TAO_IDL/be/be_codegen.cpp:
1591         Added 5 new states for code generation. All of these for
1592         operations and arguments.
1594         * TAO_IDL/be/be_argument.cpp: Made all methods uniform so that the
1595         state will be set by the corresponding be_operation method. Thus
1596         the be_operation method will vary the state but still invoke the
1597         same be_argument method.
1599         * TAO_IDL/be/be_enum.cpp, be_structure.cpp, be_union.cpp, be_field.cpp,
1600         be_sequence.cpp: Some reformatting, removed unused variables.
1602         * TAO_IDL/be/be_scope.cpp: Changes include adding ACE_ERROR_RETURN
1603         with file name, line number capability. In addition, we were not
1604         testing for return status of the various gen methods called.
1606         * Most important changes in these files:
1608         TAO_IDL/be/{be_operation,be_state_argument,be_state_operation}.cpp:
1610         Large scale changes that include a uniform way to invoke methods
1611         of the be_argument class from the be_operation methods. Added the
1612         5 new states. Added proper handling of _out parameters in stubs
1613         and skeletons.
1615 Mon Nov 17 20:05:40 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
1617         * tests/Cubit/TAO/IDL_Cubit/clnt.cpp: Cleaned up lots of places
1618         where the allocated stuff wasn't being deallocated.
1620         * tao/request.cpp: Insured that the CTOR adds a reference for the
1621         dynamically-allocated NamedValue.
1623         * tao/orb_core.cpp: Freed the faked service configurator argv.
1625         * tao/iiopobj.h: Removed anachronistic comments.
1627         * tao/iiopobj.{i,cpp}: Changed allocation of IIOP::Profile.host to use
1628         new/delete rather than strdup/free b/c the decoder, which is
1629         generic, must use new to allocate the space.  Thus, the strdup had
1630         to go.  Purify now happier.
1632         * tao/cdr.cpp: Added call to memset bracketed by #if
1633         defined(TAO_PURIFY) in order to appease the purify gods.
1635 Mon Nov 17 20:05:16 1997  Seth Benjamin Widoff  <sbw1@waltz.cs.wustl.edu>
1637         * arg_shifter.cpp:
1638         fixed a bug where in new, gcc used the address of an integer
1639         reference rather than its value. weird.
1641         * tao/orb_core.cpp:
1642           Modified the init routine to "consume" command line arguments it
1643           recognizes by placing them in the rear of argv, and adjusting
1644           argc. It uses the Arg_Shifter class to accomplish this.
1646         * tao/arg_shifter.h:
1647         * tao/arg_shifter.cpp:
1648           The Arg_Shifter class is an iterator that, as it iterates over
1649           argv, places consumed arguments at the end of the vector,
1650           ignored ones in their original order at the beginning of the
1651           vector, and adjusts argc to hide the consumed arguments.
1653 Mon Nov 17 18:40:49 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
1655         * tao/orb_core.i:
1656           Some data was not initialized when used from a thread different
1657           than the one doing ORB_init (even though we choose a global ORB
1658           in the svc.conf file). Chris found a fix for this. The affected
1659           methods are reactor(), thr_mgr(), connector() and acceptor().
1661         * TAO_IDL/be/be_sequence.cpp:
1662           length was not working if the value was <= than the maximum.
1664         * orbsvcs/lib/CosNamingC.cpp:
1665         * orbsvcs/lib/RtecEventChannelAdminC.cpp:
1666         * orbsvcs/lib/RtecEventCommC.cpp:
1667         * orbsvcs/lib/RtecSchedulerC.cpp:
1668         * orbsvcs/lib/RtecSchedulerS.cpp:
1669           Fixed the length() problem by hand, even though the new IDL
1670           compiler should do it right.
1672 Mon Nov 17 11:52:54 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
1674         * TAO_IDL/be/be_codegen.cpp (server_header),
1675           TAO_IDL/util/utl_global.cpp (be_change_idl_file_extension):
1676           Updated several methods to ensure const correctness for the
1677           updated ACE_OS::str*() methods.  Thanks to David Levine for
1678           reporting this.
1680 Mon Nov 17 02:40:14 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
1682         * TAO version 0.0.32, released Mon Nov 17 02:40:14 1997.
1684 Mon Nov 17 01:48:17 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
1686         * TAO_IDL/be/be_scope.cpp:
1687           TypeCode generation was failing for imported members.
1689         * TAO_IDL/be/be_structure.cpp:
1690           Member count must include all members, imported or not.
1692         * TAO_IDL/be/be_typedef.cpp:
1693           Added missing decr_indent() in the typecode generation which was
1694           making the generated code completely unreadable.
1696         * orbsvcs/lib/RtecEventChannelAdmin.idl:
1697         * orbsvcs/lib/RtecEventComm.idl:
1698           Removed the PullConsumer and PullSupplier classes, they are not
1699           supported.
1701         * orbsvcs/lib/CosNamingC.cpp:
1702         * orbsvcs/lib/CosNamingS.cpp:
1703         * orbsvcs/lib/RtecEventChannelAdminC.cpp:
1704         * orbsvcs/lib/RtecEventChannelAdminC.h:
1705         * orbsvcs/lib/RtecEventChannelAdminC.i:
1706         * orbsvcs/lib/RtecEventChannelAdminS.cpp:
1707         * orbsvcs/lib/RtecEventChannelAdminS.h:
1708         * orbsvcs/lib/RtecEventChannelAdminS.i:
1709         * orbsvcs/lib/RtecEventCommC.cpp:
1710         * orbsvcs/lib/RtecEventCommC.h:
1711         * orbsvcs/lib/RtecEventCommC.i:
1712         * orbsvcs/lib/RtecEventCommS.cpp:
1713         * orbsvcs/lib/RtecEventCommS.h:
1714         * orbsvcs/lib/RtecEventCommS.i:
1715         * orbsvcs/lib/RtecSchedulerC.cpp:
1716         * orbsvcs/lib/RtecSchedulerS.cpp:
1717           New version of the generated files, this last version is almost
1718           making in it, but still needs hand crafting.
1720         * TAO_IDL/be/be_array.cpp:
1721         * TAO_IDL/be/be_sequence.cpp:
1722         * TAO_IDL/be/be_typedef.cpp:
1723           Fixed buggy TypeCode lenght computation, it was only taking into
1724           account the tc_encap_len() for the base type but it should use
1725           the full tc_size().
1727         * tao/encode.cpp:
1728           Object references *must* be passed a pointer to Object_ptr in
1729           the marshalling code.
1731         * TAO_IDL/be/be_operation.cpp:
1732         * TAO_IDL/be/be_state_operation.cpp:
1733           Fixed generated code for Object references as return values. It
1734           allocates the Object_ptr in the heap, stores the result there
1735           and creates an Any for it.
1737 Sun Nov 16 23:30:26 1997  Sergio Flores  <sergio@tango.cs.wustl.edu>
1739         * orbsvcs/tests/Logger/svr.cpp (main):
1740         Changed the code to use the resolve_initial_references ()
1741         interface to get the object refrence to the naming service.
1743         * orbsvcs/tests/Logger/clnt.cpp (main): Now uses the
1744         resolve_initial_references() to get the naming service object
1745         reference, to get the logger factory object reference.
1747         * orbsvcs/bin/Naming_Service/svr.cpp (main):
1748         * orbsvcs/bin/Naming_Service/svr.h:
1749         Added code to respond to multicast requests for the IOR.
1751         Added code to respond to multicast requests for the IOR.
1753         * tests/Cubit/TAO/IDL_Cubit/clnt.cpp: Fixed some formatting
1754         problems dealing with the precision of the output.
1756 Sun Nov 16 14:48:00 1997    <nw1@COYOTE>
1758         * test/Cubit/TAO/IDL_Cubit/{server,client}.dsp: Updated library
1759           path for release version.
1761         * TAO_IDL/TAO_IDL.mak:
1762         * TAO_IDL/tao_idl.dsp: Added new files (be_state_*.cpp) into
1763           project file.
1765 Sun Nov 16 12:56:24 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
1767         * TAO_IDL/be/be_interface.cpp: The _is_a_skel method's signature
1768         had an Object_ptr obj parameter which was unused. Instead of
1769         generating the ACE_UNUSED_ARG (obj) line of code, we use /* obj */
1770         in the signature.
1772 Sun Nov 16 05:51:38 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
1774         * TAO version 0.0.31, released Sun Nov 16 05:51:38 1997.
1776 Sun Nov 16 00:22:04 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
1778         * tests/Cubit/TAO/IDL_Cubit/clnt.cpp:
1779           Fixed output for structs and union test.
1781         * tao/iiopobj.cpp:
1782           If the user provides no key for an object we generate one, based
1783           on the object address.
1785         * TAO_IDL/be/be_sequence.cpp:
1786           The length() method should get the maximum if reallocation
1787           occurs.
1789         * tao/orb_core.cpp:
1790         * tao/orbobj.cpp:
1791         * tao/orbobj.h:
1792         * tao/params.cpp:
1793         * tao/params.h:
1794           Added new options to the ORB (-ORBeventserviceior,
1795           -ORBscheduleserviceior), this should go away once the Naming
1796           Service works properly, but are needed now to locate this
1797           services.
1799         * orbsvcs/lib/Makefile:
1800           Added several small classes that help when using the Scheduling
1801           and/or the Event Service.
1803         * orbsvcs/lib/Scheduler_Factory.cpp:
1804         * orbsvcs/lib/Scheduler_Factory.h:
1805         * orbsvcs/lib/Scheduler_Factory.i:
1806           Encapsulate the construction and configuration of the Scheduling
1807           Service.
1809         * orbsvcs/lib/Runtime_Scheduler.cpp:
1810         * orbsvcs/lib/Runtime_Scheduler.h:
1811         * orbsvcs/lib/Runtime_Scheduler.i:
1812           Implement a simple, but fast, Scheduling Service based on a
1813           precomputed scheduling.
1815         * orbsvcs/lib/Event_Utilities.cpp:
1816         * orbsvcs/lib/Event_Utilities.h:
1817         * orbsvcs/lib/Event_Utilities.i:
1818           Simplify the creation of QoS structures for the Event Service.
1820         * orbsvcs/lib/Scheduler_Utilities.cpp:
1821         * orbsvcs/lib/Scheduler_Utilities.h:
1822         * orbsvcs/lib/Scheduler_Utilities.i:
1823           Simplify manipulation of the RT_Infos for the Scheduling
1824           Service.
1826         * orbsvcs/lib/Channel_Clients.cpp:
1827         * orbsvcs/lib/Channel_Clients.h:
1828         * orbsvcs/lib/Channel_Clients_T.cpp:
1829         * orbsvcs/lib/Channel_Clients_T.h:
1830           Helpers to adapt PushSuppliers and PushConsumers.
1832         * orbsvcs/lib/CosNamingC.cpp:
1833         * orbsvcs/lib/CosNamingC.h:
1834         * orbsvcs/lib/CosNamingC.i:
1835         * orbsvcs/lib/CosNamingS.cpp:
1836         * orbsvcs/lib/RtecEventChannelAdminC.cpp:
1837         * orbsvcs/lib/RtecEventChannelAdminC.h:
1838         * orbsvcs/lib/RtecEventChannelAdminC.i:
1839         * orbsvcs/lib/RtecEventChannelAdminS.cpp:
1840         * orbsvcs/lib/RtecEventChannelAdminS.h:
1841         * orbsvcs/lib/RtecEventComm.idl:
1842         * orbsvcs/lib/RtecEventCommC.cpp:
1843         * orbsvcs/lib/RtecEventCommC.h:
1844         * orbsvcs/lib/RtecEventCommC.i:
1845         * orbsvcs/lib/RtecEventCommS.cpp:
1846         * orbsvcs/lib/RtecSchedulerC.cpp:
1847         * orbsvcs/lib/RtecSchedulerC.h:
1848         * orbsvcs/lib/RtecSchedulerC.i:
1849         * orbsvcs/lib/RtecSchedulerS.cpp:
1850           This files were generated by the IDL compiler and don't need any
1851           hand crafting (so far). I still maintain them in CVS because the
1852           compiler is not stable enough.
1854         * orbsvcs/bin/Naming_Service/Makefile:
1855           Removed spurious call to rm.
1857         * orbsvcs/lib/RtecEventComm.idl:
1858           Removed the (already commented out) include of "orb.idl".
1860 Sat Nov 15 21:38:48 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
1862         * TAO_IDL/be/be_sequence.cpp:
1863           The generated length() method will reallocate the sequences
1864           now.
1866         * TAO_IDL/be/be_constant.cpp:
1867           It was initializing nested constants in the client header file,
1868           Andy told me how to fix it.
1870         * TAO_IDL/be/be_operation.cpp:
1871           Fixed typo in generated code:
1872           s/_tao_enviroment/_tao_environment/
1874         * TAO_IDL/be/be_field.cpp:
1875           Only generate the inline members of the field type if the type
1876           is not imported.
1878         * TAO_IDL/driver/drv_fork.cpp:
1879         * TAO_IDL/driver/drv_preproc.cpp:
1880           Removed old code to support plain fork (without ACE).
1881           Also removed temporary files *unless* we are on Win32, were
1882           removing the file and keeping it open fails.
1884         * TAO_IDL/include/idl_global.h:
1885         * TAO_IDL/util/utl_global.cpp:
1886           Added routines to obtain the generated names of any IDL file,
1887           not only the one we are processing.
1889         * TAO_IDL/be/be_codegen.cpp:
1890           The compiler now generate all the required include directives
1891           when the IDL file contains some.
1893         * tao/params.cpp:
1894           Initialize name_service_port_ to zero in the constructor.
1896 Sat Nov 15 21:20:01 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
1898         * TAO_IDL/be/be_string.cpp: The typecode info was getting
1899         generated in a wrong file because of setting the worng file to
1900         generate it in.
1902         * TAO_IDL/be/be_typedef.cpp: Some extra indentation was getting
1903         generated for typecodes. This is fixed.
1905         * TAO_IDL/be/be_state_argument.cpp: For parameters of type
1906         ObjRefs, we were not passing the address of the object_ptr to the
1907         Any constructor. This would have caused seg faults when
1908         decoding. This is now fixed.
1910         * TAO_IDL/be: Split be_state.cpp into a number of files based on
1911         the IDL types, e.g., be_state_struct.cpp, be_state_union.cpp, ...
1913         * TAO_IDL/be/be_sequence.cpp: Name creation now uses a uniform
1914         strategy rather than typedefed sequences assuming the name of the
1915         typedef and anonymous sequences getting a generated name. This was
1916         required to eliminate a number of multiple declarations errors.
1918         * TAO_IDL/be/be_state_union.cpp: Since C++ does not allow
1919         instances of classes to appear inside a union declaration, the
1920         private data members for data members of type objref, strings,
1921         sequences, and anys must be pointers. This changes code in the
1922         accessor methods defined in the generated *.i files for the union.
1924         * TAO_IDL/be/be_operation.cpp: There were some instances of the
1925         incorrectly spelled _tao_enviroment remaining which have been
1926         corrected.
1928         * TAO/tao/managed_types.{h,i,cpp}: Added these 3 files that define
1929         the self managed data type similar to a String_var. These self
1930         managed data types are required for struct/union members that are
1931         strings or obj references, as well as for element types of
1932         sequences.
1934         * TAO_IDL/be/be_typedef.cpp: Added code to generate the typecode
1935         structure for typedefs. These use the tk_alias kind field.
1937         * TAO_IDL/be/{be_union,be_state}.cpp: Improvements to union with
1938         string members. However, this is still incomplete and will be
1939         done by the next couple of commits.
1941         * tests/Cubit/TAO/IDL_Cubit/cubit_i.cpp: Removed the ACE_DEBUG
1942         stmt for printing object keys.
1944 Sat Nov 15 18:03:39 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
1946         * tests/Cubit/TAO/IDL_Cubit/cubit_i.cpp (make_cubit): We don't
1947           need to free up the object key since it's no longer allocated
1948           dynamically.
1950         * tao/object: Changed the _get_name() method to return const char
1951           * to be consistent with the iiopobj change below.
1953         * tao/iiopobj: Fixed _get_name() so that it doesn't allocate
1954           memory by having it return const char * and just return the
1955           pointer.  This should fix some subtle problems.
1957 Sat Nov 15 12:19:55 1997  Nanbor Wang  <nw1@merengue.cs.wustl.edu>
1959         * TAO_IDL/be/be_codegen.cpp: Changed two loop counters from type
1960           int to type size_t.
1962 Sat Nov 15 01:33:08 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
1964         * TAO version 0.0.30, released Sat Nov 15 01:33:08 1997.
1966 Fri Nov 14 19:45:01 1997  Sergio Flores  <sergio@polka.cs.wustl.edu>
1968         * tests/Cubit/TAO/DII_Cubit/clnt.cpp :
1969         * tests/Cubit/TAO/DII_Cubit/clnt.h :
1970         * tests/Cubit/TAO/IDL_Cubit/clnt.cpp :
1971         - Fixed the difference in latency problem from DII and IDL.
1972         - Changed the DII_Cubit client interface to be similar to IDL, now
1973         you can specify hostname and port number, instead of the IOR.
1975 Fri Nov 14 17:48:14 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
1977         * orbsvcs/bin/Naming_Service/CosNaming_i.cpp:
1978           Fixed problem with the new Environment parameter for _narrow ().
1980         * orbsvcs/bin/Naming_Service/Makefile:
1981           No need to include rules.bin.GNU.
1983 Fri Nov 14 17:08:20 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
1985         * tao/iiopobj.cpp: Make sure that host is set to 0 in all the
1986           constructors.
1988         * tao/iiopobj.cpp (Profile): Modified the code to consistently
1989           store a NUL at the end of each object key string.
1991 Fri Nov 14 17:10:20 1997  Sumedh Mungee  <sumedh@lindy.cs.wustl.edu>
1993         * cubit_i.cpp: Changed &d to %d in ACE_ERROR
1995 Fri Nov 14 16:42:21 1997  Chris Cleeland  <cleeland@tango.cs.wustl.edu>
1997         * tao/tao_internals.cpp (fake_service_entries_i): Made sure that
1998         the resource factory faked entry had the proper number of
1999         arguments specified.
2001 Fri Nov 14 14:11:47 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
2003         * orbsvcs/lib/Makefile:
2004           Added new library that contains the stubs and skeletons for the
2005           TAO services.
2007         * orbsvcs/Makefile:
2008         * orbsvcs/bin/Makefile:
2009         * orbsvcs/tests/Makefile:
2010           Added top level Makefiles.
2012         * orbsvcs/bin/Naming_Service/Makefile:
2013         * orbsvcs/bin/Naming_Service/svr.cpp:
2014         * orbsvcs/bin/Naming_Service/svc.conf:
2015         * orbsvcs/bin/Naming_Service/NS_CosNaming.h:
2016         * orbsvcs/bin/Naming_Service/NS_CosNaming.cpp:
2017         * orbsvcs/bin/Naming_Service/CosNaming_i.h:
2018         * orbsvcs/bin/Naming_Service/CosNaming_i.cpp:
2019           Moved the naming service implementation from the TAO
2020           subdirectory to this place.
2022         * orbsvcs/tests/Simple_Naming/Makefile:
2023         * orbsvcs/tests/Simple_Naming/svc.conf:
2024         * orbsvcs/tests/Simple_Naming/clnt.h:
2025         * orbsvcs/tests/Simple_Naming/clnt.cpp:
2026           A simple test program for the naming service, it simply tries to
2027           locate it and connect to it.
2029         * orbsvcs/bin/Naming_Service/Orbix/Client.cpp:
2030         * orbsvcs/bin/Naming_Service/Orbix/CosNaming.idl:
2031         * orbsvcs/bin/Naming_Service/Orbix/Makefile:
2032         * orbsvcs/bin/Naming_Service/Orbix/NS_CosNaming.cpp:
2033         * orbsvcs/bin/Naming_Service/Orbix/NS_CosNaming.h:
2034         * orbsvcs/bin/Naming_Service/Orbix/logger-main.cpp:
2035         * orbsvcs/bin/Naming_Service/Orbix/logger.idl:
2036         * orbsvcs/bin/Naming_Service/Orbix/logger_tie.cpp:
2037         * orbsvcs/bin/Naming_Service/Orbix/logger_tie.h:
2038         * orbsvcs/bin/Naming_Service/Orbix/server-main.cpp:
2039         * orbsvcs/bin/Naming_Service/TAO/CosNaming.idl:
2040         * orbsvcs/bin/Naming_Service/TAO/CosNaming_i.cpp:
2041         * orbsvcs/bin/Naming_Service/TAO/CosNaming_i.h:
2042         * orbsvcs/bin/Naming_Service/TAO/Makefile:
2043         * orbsvcs/bin/Naming_Service/TAO/NS_CosNaming.cpp:
2044         * orbsvcs/bin/Naming_Service/TAO/NS_CosNaming.h:
2045         * orbsvcs/bin/Naming_Service/TAO/clnt.cpp:
2046         * orbsvcs/bin/Naming_Service/TAO/clnt.h:
2047         * orbsvcs/bin/Naming_Service/TAO/svc.conf:
2048         * orbsvcs/bin/Naming_Service/TAO/svr.cpp:
2049           We will only maintain the TAO version for the naming service, no
2050           need to keep this subdirectories.
2052         * orbsvcs/lib/RtecScheduler.idl:
2053           The Real Time Scheduling Service. This module declares the QoS
2054           structures (RT_Info) and the interface for the global scheduler.
2056         * orbsvcs/lib/RtecEventComm.idl:
2057           Part of the Real Time Event Services interface, this file
2058           contains the Event type, the basic interfaces for consumers and
2059           suppliers and some exceptions.
2061         * orbsvcs/lib/RtecEventChannelAdmin.idl:
2062           Part of the Real Time Event Services interface, in particular
2063           this module defines the event channel, the proxy interfaces and
2064           the QoS aware subscription and registration interfaces.
2066         * orbsvcs/lib/Event_Service_Constants.h:
2067           The Event Service implementation and the Scheduling Service
2068           implementation require this file, which defines some constants
2069           and static limits. For lack of a better place I putted it here.
2071         * orbsvcs/lib/CosNaming.idl:
2072           Moved the IDL file to the library, otherwise it cannot be used
2073           by clients.
2075         * tao/corba.h:
2076           Added some macros that support portable exception handling,
2077           either through C++ exceptions or the CORBA::Enviroment
2078           parameter.
2080         * orbsvcs/lib/RtecEventCommC.h:
2081         * orbsvcs/lib/RtecEventCommC.i:
2082         * orbsvcs/lib/RtecEventCommC.cpp:
2083         * orbsvcs/lib/RtecEventCommS.h:
2084         * orbsvcs/lib/RtecEventCommS.i:
2085         * orbsvcs/lib/RtecEventCommS.cpp:
2086         * orbsvcs/lib/RtecEventChannelAdminS.h:
2087         * orbsvcs/lib/RtecEventChannelAdminS.i:
2088         * orbsvcs/lib/RtecEventChannelAdminS.cpp:
2089         * orbsvcs/lib/RtecEventChannelAdminC.h:
2090         * orbsvcs/lib/RtecEventChannelAdminC.i:
2091         * orbsvcs/lib/RtecEventChannelAdminC.cpp:
2092         * orbsvcs/lib/CosNamingC.h:
2093         * orbsvcs/lib/CosNamingC.i:
2094         * orbsvcs/lib/CosNamingC.cpp:
2095         * orbsvcs/lib/CosNamingS.h:
2096         * orbsvcs/lib/CosNamingS.i:
2097         * orbsvcs/lib/CosNamingS.cpp:
2098           I had to modify the IDL compiler generated files, I will keep
2099           the files in CVS until we no longer need to modify it.
2101 Fri Nov 14 13:02:52 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
2103         * tao/decode.cpp: TAO_Marshal_Objref::decode line 615 which tried
2104         to set the underlying object_addr was invoking an incorrect inline
2105         function because of lack of passing an argument to the object_addr
2106         () method. Specifically, due to the lask of argment, the
2107         "retrieve" method was getting called whereas we wanted the "set"
2108         method. All we do is pass a 0 (NUL) argument. This suffices
2109         because we have already decoded the host and port number. So all
2110         information is with us to set the server address.
2112 Fri Nov 14 00:29:09 1997  David L. Levine  <levine@cs.wustl.edu>
2114         * TAO_IDL/fe/lex.yy.cpp: set RCS -ko option so that the Id keyword
2115           won't get expanded on checkout.  That was causing CVS to think
2116           that a merge was needed.
2118 Thu Nov 13 19:11:36 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
2120         * tao/giop.cpp (start): Updated the code to use the new
2121           object_addr() style.
2123         * tao/iiopobj: Added many fixes to the Profile code to fix nasty
2124           bugs.  Also, renamed {get|set}_object_addr() to simply
2125           object_addr(), which is the correct style.
2127         * tao/iiopobj.h: Replaced the use of "localhost" with
2128            ACE_DEFAULT_SERVER_HOST.  This is necessary to support broken
2129            platforms like MVS that don't support "localhost"...
2131         * TAO/tests/Cubit/TAO/IDL_Cubit/svr.cpp (parse_args): Assume for
2132           the moment that any arguments starting with `-O' are `-ORB' or
2133           `-OA'.  This should be fixed by having the ORB_init() and
2134           POA_init() methods consume their argv/argc's.
2136 Thu Nov 13 16:18:32 1997    <nw1@CHA-CHA>
2138         * tao/orb_core.h:
2139         * tao/default_client.h:
2140         * tao/default_server.h:  Changed ACE_SVC_FACTORY_DECLARE to
2141           ACE_FACTORY_DECLARE.
2143         * tao/orb_core.cpp:
2144         * tao/default_client.cpp:
2145         * tao/default_server.cpp:  Changed ACE_SVC_FACTORY_DEFINE to
2146           ACE_FACTORY_DEFINE.
2148         * tao/corba.h: Added include "tao/tao_internals.h".
2150         * tao/tao_internals.h: Disable header file inclusions.  I've put
2151           this file into corba.h.
2153         * tao/tao_internals.cpp: Changed to use "tao/corba.h".
2155         * tao/TAO.mak:
2156         * tao/TAO.dsp:  Replaced ACE_BUILD_SVC_DLL with TAO_BUILD_DLL.
2158         * tao/corba.h: Added TAO_Export definition.
2160         * tao/*.h:  Replaced ACE_Svc_Export with TAO_Export.  Added
2161           default definition to build TAO DLL on Win32.
2163 Thu Nov 13 01:47:02 1997  Chris Cleeland  <cleeland@macarena.cs.wustl.edu>
2165         * tao/iiopobj.cpp (IIOP_Object): Removed the duplicate CTORs that
2166         I'd accidentally included here during the prior merge/commit
2167         phase.
2169 Wed Nov 12 23:59:29 1997    <nw1@COYOTE>
2171         * TAO/TAO_IDL/tao_idl.dsp: Changed to generate multithreaded codes
2172           on NT.
2174         * TAO/TAO_IDL/be/be_scope.cpp:
2175         * TAO/TAO_IDL/fe/idl.ll:
2176         * TAO/TAO_IDL/fe/lex.yy.cpp:
2177         * TAO/TAO_IDL/fe/y.tab.cpp:
2178         * TAO/TAO_IDL/include/ast_decl.h:
2179         * TAO/TAO_IDL/include/idl.h:
2180         * TAO/TAO_IDL/include/utl_identifier.h:
2181         * TAO/TAO_IDL/include/utl_idlist.h:
2182         * TAO/TAO_IDL/include/utl_tmpl/utl_decllist.h:
2183         * TAO/TAO_IDL/include/utl_tmpl/utl_exceptlist.h:
2184         * TAO/TAO_IDL/include/utl_tmpl/utl_exprlist.h:
2185         * TAO/TAO_IDL/include/utl_tmpl/utl_idlist.h:
2186         * TAO/TAO_IDL/include/utl_tmpl/utl_labellist.h:
2187         * TAO/TAO_IDL/include/utl_tmpl/utl_namelist.h:
2188         * TAO/TAO_IDL/include/utl_tmpl/utl_strlist.h:  Changed to use
2189           "ace/stdcpp.h" and removed inclusion of header files that
2190           conflict with standard C++ library.
2192 Wed Nov 12 18:59:20 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
2194         * tao/iioporb.cpp: Added call to set object address in Profile.
2196         * tao/iiopobj.cpp: Corrected code in the copy CTOR where the host
2197         was being copied over the old host.  This could prove bad if the
2198         amount of space allocated previously was too small for the
2199         hostname we're copying in.  Ideally we'd use something smarter
2200         than this, but hopefully (if you read the comment below) this will
2201         go away soon.
2203         * tao/iiopobj.*: Added an ACE_INET_Addr to IIOP::Profile so that
2204         we only need to do a gethostbyname() once.  After that we can used
2205         the cached information.  I'd really like to remove the host/port
2206         as explicit public data members, but for now we take one step at a
2207         time.
2209         * tao/giop.cpp: Use the IIOP::Profile object address when making a
2210         connection.
2212         * tao/decode.cpp: Added code to set the object address in the
2213         Profile when an object ref is decoded.
2215         * tao/debug.h: Removed old questions in comments.
2217         * tao/connect.h: Added some documentation.
2219 Wed Nov 12 17:41:02 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
2221         * tao/iiopobj.cpp: I had forgotten to update the return type of
2222         _get_name in iiopobj.cpp to "char *" instead of "const char *".
2224 Wed Nov 12 14:28:48 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
2226         * TAO_IDL/ast/ast_union.cpp: Fixed a problem where the front end
2227         would not give any error if there were duplicate case labels. This
2228         was happening since an overloaded == operator taking an
2229         AST_Expression* was not getting called. Instead a simple
2230         comparison of addresses was taking place. We now use the "compare"
2231         method defined on the AST_Expression class to fix this problem.
2233         * TAO_IDL/be/be_interface.cpp: Removed some code under #if 0. The
2234         noteworthy change, however, has to do with code that gets
2235         generated for the "_is_a_skel". Some compilers were issuing a
2236         warning saying "unused argument obj". Since we cannot change the
2237         signature of the generated "_is_a_skel", we use the trick of
2238         generatung ACE_UNUSED_ARG (obj); in the code. Some other
2239         formatting changes made.
2241         * TAO_IDL/be/be_operation.cpp: Some very minor changes so that the
2242         generated code is properly indented.
2244         * tao/{iiopobj,object,stub}.h, iiopobj.cpp: Changed the return
2245         type of _get_name to return a heap-allocated "char *". In the
2246         earlier case we were erroneously returning a pointer to local
2247         array. This was a change I made a couple of days back to deal with
2248         the fact that object keys are octet arrays and are not null
2249         terminated. Now we take the object key and make a NULL terminated
2250         copy in a heap allocated string. It is the caller's responsibility
2251         to free this.
2253         * tao/tests/Cubit/TAO/IDL_Cubit/cubit_i.cpp: Used string_free to
2254         free the string returned by _get_name.
2256         * tao/tests/Thruput/client.cpp: _narrow now uses the additional
2257         env parameter.
2259 Wed Nov 12 09:22:47 1997  David L. Levine  <levine@cs.wustl.edu>
2261         * tao/tao_internals.cpp (open_services): added ACE_UNUSED_ARGs
2262           for argc and argv if TAO_PLATFORM_SVC_CONF_FILE_NOTSUP.
2264         * TAO_IDL/Makefile: disabled clean and realclean targets on VxWorks,
2265           so that they don't remove tao_idl from the host build tree.
2267 Tue Nov 11 23:50:06 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
2269         * TAO version 0.0.29, released Tue Nov 11 23:50:06 1997.
2271 Tue Nov 11 20:45:26 1997  Douglas C. Schmidt  <schmidt@macarena.cs.wustl.edu>
2273         * tao/default_server.cpp (parse_args): Replaced NULL with 0.
2275         * tao/corbacom.h: Fixed the macro for TAO_SYSTEM_EXCEPTION so
2276           compilers don't whine about extra semi-colons.
2278         * tao/iioporb.cpp (iiop_string_to_object): Added a cast of (char
2279           *) 0 to disambiguate one of the methods.
2281         * tao/iiopobj.cpp: Moved the constructors and destructors of
2282           IIOP_Object from the *.i file to the *.cpp file and made them
2283           non-inline.
2285 Tue Nov 11 18:19:16 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
2287         * tao/iiopobj.{h,cpp}: Added two new constructors one of which is
2288         useful for the _bind call generated by the IDL compiler. This
2289         constructor takes the host name, port number, and key value
2290         thereby avoiding the costly string2object call inside the _bind
2291         method. The second constructor is used to reduce the amount of
2292         code that gets generated to set a IIOP_Object in the constructor
2293         of the skeleton class.
2295         Additionally, these constructors use the REENTRANT get_host_name
2296         method of the INET_Addr class to retrieve the host name.
2298         * tao/iiopobj.h,stub.h: Modified the signature of _get_name to
2299         return a const char*. So users will have to copy this value.
2301         * tao/iiopobj.cpp: The method _get_name uses an internal character
2302         array in which the object key is copied. This is necessary so that
2303         we can NULL terminate the opaque key and return it to the user.
2305         * tao/orbconf.h,cdr.h: Commented (and will eventually remove) the
2306         defintion of MY_BYTE_SEX from cdr.h. Instead, we now use the macro
2307         TAO_ENCAP_BYTE_ORDER which gets defined in orbconf.h. The files
2308         affected due to this renaming are:
2310         tao/{iioporb.cpp, giop.cpp, except.cpp, cdr.cpp, encode.cpp,
2311         interp.cpp, tc_const.cpp}
2313         The following files in the IDL compiler source were affected since
2314         they had to generate TAO_ENCAP_BYTE_ORDER instead of MY_BYTE_SEX.
2315         TAO_IDL/be/{be_array,be_enum,be_interface,be_sequence,be_structure,
2316                 be_union}.cpp
2318         * tao/{typecode,decode}.cpp: some reformatting, indentation.
2320         * TAO_IDL/be/be_interface.cpp: code generated for _bind uses the
2321         newly added constructor to class IIOP_Object.
2323         * TAO_IDL/be/{be_interface.be_state}.cpp: Code generated for
2324         _narrow now takes an additional CORBA::Environment parameter.
2326         * tests/Cubit/TAO/IDL_Cubit: cubit_i.cpp - in the method
2327         make_cubit, we make a copy of the string returned by _get_name and
2328         then free that memory.
2330         clnt.cpp: The tests for unions have been uncommented. The reason
2331         they were not working and resulting in seg fault was that methods
2332         of the cubit interface were being invoked on the factory object.
2334 Tue Nov 11 10:07:04 1997  David L. Levine  <levine@cs.wustl.edu>
2336         * tests/Cubit/TAO/DII_Cubit/Makefile: added missing before (VAR)
2337           in VBIN definition.
2339         * tao/orbconf.h: added __i386 to TAO_WORDS_BIGENDIAN check,
2340           because that's what g++/VxWorks uses.  Also added __alpha
2341           to little endian CPUs.
2343         * tao/orb_core.i: fixed preprocessor test for using the
2344           ACE_Hash_Addr<ACE_INET_Addr>::hash_i specialization.
2346 Tue Nov 11 04:22:44 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
2348         * TAO version 0.0.28, released Tue Nov 11 04:22:44 1997.
2350 Tue Nov 11 01:16:07 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
2352         * tao/orbobj.cpp (resolve_name_service): Reformatted the
2353           multicast Name Service locator just a bit.
2355         * tao/orbconf.h: Started putting a more sane way of automatically
2356           determining the size of various datatypes into TAO.
2358 Tue Nov 11 00:36:39 1997  Sergio Flores  <sergio@macarena.cs.wustl.edu>
2360         * orbsvcs/bin/Logger/ior_multicast.h:
2361         * orbsvcs/bin/Logger/ior_multicast.cpp:
2362         * orbsvcs/bin/Logger/clnt.cpp:
2363         * orbsvcs/bin/Logger/clnt.cpp:
2364         * orbsvcs/bin/Logger/svr.cpp:
2365         * orbsvcs/bin/Logger/Makefile:
2366         Added multicast resolution of the logger service example.
2368 Tue Nov 11 00:36:39 1997  Sergio Flores  <sergio@macarena.cs.wustl.edu>
2370         * tao/orbobj.cpp (resolve_name_service): changed macro for default
2371         multicast port.
2372         - Added support for multicast mechanism to resolve the name
2373         service.
2375         * tao/orbconf.h: Added some definitions for TAO's default
2376         multicast and reply port, and the default timeout value.
2378 Tue Nov 11 00:00:25 1997  David L. Levine  <levine@cs.wustl.edu>
2380         * tests/Cubit/TAO/IDL_Cubit/Makefile: removed MUNCHED because
2381           it's no longer needed for g++/VxWorks.
2383 Mon Nov 10 22:02:42 1997  Douglas C. Schmidt  <schmidt@macarena.cs.wustl.edu>
2385         * tao/interp.cpp (declare_entry): Moved TAO_ALIGNMENT_MAGIC_NUMBER
2386           to orbconf.h instead of burying it in interp.cpp.
2388         * tao/corbacom.h: Rather than trying to guess what the size of
2389           wchar_t, let's just use what's in ACE.
2391 Mon Nov 10 19:26:03 1997  Sumedh Mungee  <sumedh@lindy.cs.wustl.edu>
2393         * tao/orbconf.h (SIZEOF_INT): FreeBSD and NetBSD have 4 byte
2394           ints. Thanks to Nanbor for pointing this out.
2396         * tao/orbobj.cpp: Added template instantiation for ACE_Atomic_Op.
2398         * tao/orbconf.h: NetBSD has a long double of size 12, as does
2399           FreeBSD. Fixed SIZEOF_LONG_DOUBLE to fix this.
2401         * tests/Cubit/TAO/MT_Cubit/server/svr.cpp (main): Removed cerr's
2402           and replaced them with ACE_ERROR_RETURN's and the like.
2404 Mon Nov 10 01:25:19 1997    <nw1@COYOTE>
2406         * tao/giop.h: Added ACE_Svc_Export to classes
2407           (TAO_GIOP_Request_Header, TAO_GIOP_Invocation, TAO_GIOP.)  Some
2408           of them may not be necessary.
2410 Mon Nov 10 00:09:24 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
2412         * TAO version 0.0.27, released Mon Nov 10 00:09:24 1997.
2414 Sun Nov 09 23:43:04 1997    <irfan@TWOSTEP>
2416         * tao/corba.h: Reordered the inclusion of poa.i, giop.i,
2417           iioporb.i, and iiopobj.i
2419         * tao/tao_internals.cpp (close_services): Fixed typo.
2421 Sun Nov 09 23:32:58 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
2423         * TAO version 0.0.26, released Sun Nov 09 23:32:58 1997.
2425 Sun Nov 09 22:04:12 1997    <irfan@TWOSTEP>
2427         * tao/orbobj.cpp (ORB_init):
2428         * tao/tao_internals.cpp (close_services):
2430           Changed ACE_Recursive_Thread_Mutex to ACE_SYNCH_RECURSIVE_MUTEX.
2432 Sun Nov  9 16:05:56 1997  Sergio Flores  <sergio@macarena.cs.wustl.edu>
2434         * tests/Cubit/TAO/DII_Cubit/clnt.cpp: *
2435         tests/Cubit/TAO/DII_Cubit/clnt.h: Added clnt.h and restructured
2436         the code so it is similar to the IDL_Cubit example.  It doesn't,
2437         however, have the same options because the DII example uses an ior
2438         as input.
2440         * tao/debug.cpp: Added dummy function to get rid of
2441         "'debug_stream' defined but not used" warning.
2443 Sun Nov  9 13:03:37 1997  Douglas C. Schmidt  <schmidt@macarena.cs.wustl.edu>
2445         * tao: Removed the svc.conf.eg file since it was out of date.
2447         * tao/svrrqst: Removed the #include for svrrqst.i since we don't
2448           need any inline functions now.
2450         * tao/tao_internals: Removed the #include for tao_internals.i
2451           since we don't need any inline functions now.
2453         * tao/varout.h: Cleaned up the programming style.
2455         * tao: Continued to replace all fields with names _foo to foo_.
2457         * tao/iioporb.cpp: Move the hex routines into ACE since they are
2458           more general.
2460         * tao/iioporb.cpp: Removed the inclusion of iioporb.i since it is
2461           already included in corba.h.
2463         * tao: Replaced all uses of ACE_Thread_Mutex with ACE_SYNCH_MUTEX
2464           since this is portable...
2466         * tao/iiopobj.cpp: Removed the inclusion of iiopobj.i since it is
2467           already included in corba.h.
2469         * tao/giop.cpp: Moved several large inlined methods into the *.cpp
2470           file.
2472         * tao/giop: Removed the enormous (and unused) incoming_message()
2473           method.
2475         * tao/giop.cpp: Removed the inclusion of giop.i since that is
2476           handled in corba.h.
2478         * tao: Removed the factories.i and factories.cpp files since they
2479           don't seem to be used by anything.
2481         * tao/{corbacom,except}.*: Changed SYSEX to the more politically
2482           correct TAO_SYSTEM_EXCEPTION.
2484         * tao: Replaced all uses of wslen() and wscpy() with the
2485           corresponding ACE_OS wide string functions.
2487         * tao/orbconf.h: Removed all the HAVE_WIDEC_H stuff.  This should
2488           be handed by ACE.
2490         * tao/connect.i: Removed the template instantiations since they
2491           were commented out and didn't appear to be used.
2493         * tao/connect.cpp: connect.i was already being included in corba.h,
2494           so don't include it again.
2496         * tao/client_factory.cpp: Moved inlined constructor/destructor
2497           from the *.i file into the *.cpp file.
2499         * tao/cdr.cpp (CDR): Moved a bunch of absurdly long inlined methods
2500           from the *.i file into the *.cpp file.
2502         * tao/any.cpp (CORBA_Any): refcount_ has previously been
2503           uninitialized.  I gave it a value of 1.
2505         * tao/any.cpp (CORBA_Any): Moved the initialization into the
2506           base/member section, where it belongs.
2508         * tao/any.h: Corrected a spelling mistake in an enumeral and
2509           upper-cased the minor codes for exceptional returns.  Are these
2510           actually used anywhere?
2512         * tao: Removed all the unnecessary #if 0 ... #endif header files.
2513           I don't know why there were still there.
2515         * tao/except.h: Moved the #ifdef for minor and major into
2516           orbconf.h, where they belong.
2518         * tao/orbconf.h: Removed all the DECLARED_* macros since they
2519           no longer made sense once we've got ACE.
2521         * tao/orbconf.h: Moved the TAO_DEFAULT* macros from ace/OS.h
2522           here, which is more where they belong.
2524         * tao/default_server.cpp (TAO_Default_Server_Strategy_Factory):
2526         * tao/{debug.h,orbconf.h}: Removed the DECLARED_STRERROR macro
2527           since ACE handles this.
2529 Sun Nov 09 10:18:06 1997  David L. Levine  <levine@cs.wustl.edu>
2531         * tao/connect.cpp: fixed RCS keyword (Id instead of id).
2533 Sat Nov 08 23:23:41 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
2535         * TAO version 0.0.25, released Sat Nov 08 23:23:41 1997.
2537 Sat Nov  8 21:27:34 1997  Douglas C. Schmidt  <schmidt@macarena.cs.wustl.edu>
2539         * tao/orb_core.cpp (init): Removed the code that always binded us
2540           to our hostname.  This is unnecessary and makes it hard to use
2541           other interfaces on the same host (such as localhost or some ATM
2542           interface, etc.).  With this change (and the corresponding
2543           changes to ACE_INET_Addr::get_host_name()), we can now bind to
2544           INADDR_ANY.
2546         * docs/releasenotes: Added Marina's documentation for the Trader
2547           and cleaned up all the other entries to make them consistent.
2549         * tao: Changed ProfileBody to Profile, TaggedProfile to
2550           Tagged_Profile, ProfileSeq to Profile_Sequence, and ProfileId to
2551           Profile_ID.
2553         * tao/iiopobj.cpp (ProfileBody): For some god knows why reason,
2554           the CORBA::String and CORBA::UShort parameters to ProfileBody
2555           where being passed as references.  This is silly, so I changed
2556           them to non-references.
2558         * tao/connect.cpp (open),
2559           tao/poa.cpp (create): Replaced a use of
2560           ACE_INET_Addr::get_host_name(void) with
2561           ACE_INET_Addr::get_host_name (char *, size_t), which is
2562           reentrant.
2564         * tao/Makefile: Removed the DCFLAGS, OCFLAGS, and the TAO_ORB_CORE
2565           target macros from the Makefile since they were unnecessary.
2566           Thanks to Arturo for reporting this.
2568         * tao/except.cpp (print_exception): Fixed a strange format code in
2569           print_exception that was causing a seg fault.  What the heck
2570           does %#lx mean?  Thanks to Mark L Boriack <mark@vtcibm4a> for
2571           reporting this.
2573 Fri Nov 07 21:23:35 1997  Carlos O'Ryan  <coryan@MILONGA>
2575         * tao/orb_core.h:
2576         * tao/marshal.h:
2577         * tao/corbacom.h:
2578           Added ACE_Svc_Export to some classes.
2580         * tao/any.cpp:
2581           Removed delete after DEEP_FREE call, it crashes on NT and it
2582           should be unneeded.
2584         * TAO_IDL/be/be_state.cpp (gen_code):
2585           When generating arguments for the server header don't use nested
2586           types. The fully qualified type name is needed, even on NT.
2588         * TAO_IDL/be/be_exception.cpp:
2589           Added code to generate a default constructor.
2591 Fri Nov 07 17:26:49 1997    <nw1@CHA-CHA>
2593         * tao/TAO.dsp:
2594         * tests/Cubit/TAO/DII_Cubit/{client,server}.dsp:
2595         * tests/Cubit/TAO/IDL_Cubit/{client,server}.dsp:
2596         * tests/Cubit/TAO/MT_Cubit/client/client.dsp:  Removed
2597           ACE_HAS_TSS_ORB_CORE flag.
2599         * tests/Cubit/TAO/MT_Cubit/client/client.cpp (main): Added a
2600           return statement to satisfy MSVC.
2602 Fri Nov  7 18:20:46 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
2604         * tests/Cubit/TAO/MT_Cubit/{client,server}/svc.conf: Updated to
2605         reflect the proper combination of options to achieve the
2606         thread-per-ORB-per-rate concurrency model.
2608         * docs/components.html: Updated to refer to seminal documentation
2609         referred to below.
2611         * docs/configurations.html: Started some new documentation.  It's
2612         got a ways to go right now. :-)
2614 Fri Nov 07 15:42:45 1997  David L. Levine  <levine@cs.wustl.edu>
2616         * tao/default_server.cpp (parse_args): check for 0 argv[curarg]
2617           before calling strcmp on it.
2619         * tests/Cubit/TAO/IDL_Cubit/Makefile: added MUNCHED for
2620           VxWorks/g++.
2622 Fri Nov  7 10:30:59 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
2624         * tao/tao_internals.cpp (fake_service_entries_i): Updated faked
2625         service entries to include new Resource Factory.  This is the
2626         fallback for VxWorks.
2628         * tao/orb_core.h (TAO_Resource_Factory): Added much comments.
2630 Fri Nov 07 02:45:56 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
2632         * TAO version 0.0.24, released Fri Nov 07 02:45:56 1997.
2634 Fri Nov  7 01:58:30 1997  Nanbor Wang  <nw1@coyote.wolfpack.cs.wustl.edu>
2636         * TAO_IDL/driver/drv_preproc.cpp:
2637         * TAO_IDL/driver/drv_fork.cpp: Added the (__FreeBSD__) flag to
2638           correctly include wait.h file.
2640         * tao/orb_core.cpp: Replaced ACE_NETBSD with ACE_HAS_THREADS in
2641           template instantiation segment.
2643         * tao/orbconf.h: Added the (__FreeBSD__) flag to exclude inclusion of
2644           widec.h.
2646         * tao/orbobj.cpp (Release): Wrapped ACE_GUARD with ACE_MT macro.
2648 Fri Nov 07 01:46:04 1997    <irfan@TWOSTEP>
2650         * tests/Cubit/TAO/DII_Cubit/(cubitC.cpp, cubit.cpp): Byte order
2651           changed from 1 to MY_BYTE_SEX.
2653 Thu Nov  6 23:59:45 1997  Douglas C. Schmidt  <schmidt@macarena.cs.wustl.edu>
2655         * tao/params.cpp: Moved all the inlined methods out of the header
2656           file and put them in the *.cpp file.  I hope this doesn't cause
2657           problems for GCC on VxWorks.
2659         * tests/Thruput_test/client.cpp: Fixed a mistake with how
2660           the long string constant was defined.  The scheme being
2661           used wasn't portable.
2663 Thu Nov 06 20:58:52 1997    <irfan@TWOSTEP>
2665         * tao/connect.cpp: Made sure that TAO_Server_Connection_Handler
2666           and TAO_Client_Connection_Handler have a zero Reactor pointer.
2667           If this is not the case, they will try to deregister from a
2668           sometimes non-existent Reactor.
2670 Thu Nov  6 19:06:59 1997  Sergio Flores  <sergio@polka.cs.wustl.edu>
2672         * docs/releasenotes/index.html: Updated status of Naming Service
2673         port to TAO.
2675         * TAO_IDL/be/be_exception.cpp (gen_client_header):
2676         removed warning for unused variable.
2678 Thu Nov  6 17:07:58 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
2680         * tao/tao_internals.i: Added missing #include file.
2682         * tao/tao_internals.i: Change lock used as monitor for service
2683         count to use ACE_Static_Object_Lock::instance().  This pleases
2684         VxWorks (but makes me nauseous).
2686         * tao/tao_internals.h: Removed static instances of locks to please
2687         VxWorks.
2689         * tao/orbobj.cpp (ORB_init): Changed lock used for the monitor
2690         here to be ACE_Static_Object_Lock::instance().  This pleases
2691         VxWorks (but makes me nauseous).
2693         * tao/orb_core.cpp (init): Merged in changes for new Naming
2694         Service-related options that got accidentally overwritten last
2695         night.
2697         * docs/Options.html: Added documentation for new Naming
2698         Service-related options in.
2700         * tao/orbobj.h: Added documentation for a few static methods.
2702         * tao/params.h: Changed LOCAL_INLINE macro to TAO_LOCAL_INLINE to
2703         avoid possible collisions with application macros.
2705 Thu Nov  6 14:51:22 1997  Sumedh Mungee  <sumedh@lindy.cs.wustl.edu>
2707         * TAO_IDL/Makefile: Renamed libutil to libtao_idl_util. libutil is
2708         a system library on NetBSD. Updated TAO_IDL/util/Makefile to be
2709         compatible with this.
2711         * TAO_IDL/be/be_codegen.cpp (server_header): Changed ::toupper to
2712         be toupper, since toupper is a macro on some platforms (like
2713         netbsd).
2715         * TAO_IDL/driver/{drv_preproc.cpp, drv_fork.cpp}: NetBSD has
2716         sys/wait.h, instead of wait.h. Added #define to fix it.
2718 Thu Nov  6 01:40:29 1997  Sumedh Mungee  <sumedh@macarena.cs.wustl.edu>
2720         * tao/tao_internals.h: #defined ACE_Thread_Mutex to be
2721         ACE_Null_Mutex for NetBSD.
2723         * tao/orbconf.h: Added NetBSD to the #define around HAVE_WIDEC_H.
2725         * tao/orb_core.cpp: #defined around some thread-specific template
2726         instantiations which are not needed on NetBSD.
2728         * tao/except.h: Undefined "minor" and "major, since these are
2729         defined in NetBSD.
2731 Thu Nov 06 14:47:15 1997  David L. Levine  <levine@cs.wustl.edu>
2733         * tao/params.[hi]: inlined some functions in the class declaration
2734           because g++ for VxWorks couldn't deal with them in the .i file.
2736         * tao/tao_internals.*,orbobj.cpp: fixed replacement of orbinit_lock_
2737           and service_lock_ with ACE_Static_Object_Lock::instance ().
2739 Thu Nov 06 02:17:02 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
2741         * TAO version 0.0.23, released Thu Nov 06 02:17:02 1997.
2743 Wed Nov  5 23:44:42 1997  Douglas C. Schmidt  <schmidt@macarena.cs.wustl.edu>
2745         * tao/{orbobj,iioporb}.h: Made the first parameter to
2746           string_to_object() a const CORBA::String rather than just a
2747           CORBA::String.
2749         * tao/params (addr): Fixed a bug where we should have been using
2750           const ACE_INET_Addr & rather than just ACE_INET_Addr &.
2752         * tao/orbobj: Began adding the hooks for a multicast-based
2753           implementation of resolve_initial_references().
2755         * tao/params: Added a new set/get interface to optionally set/get
2756           the IOR of the configured Naming Service.
2758         * tao/orb_core.cpp (init): Added a -ORBnameservice command-line
2759           option.  If this option is given, it indicates the IOR where the
2760           Naming Service resides.
2762         * tao/params: Changed the signature of TAO_ORB_Parameters::addr()
2763           to return a const ACE_INET_Addr & rather than an ACE_INET_Addr.
2765         * tao/params: Added new get/set name_service_port() methods to
2766           get/set the name service multicast port.
2768 Wed Nov  5 22:38:08 1997  Sergio Flores  <sergio@macarena.cs.wustl.edu>
2770         * tests/Thruput_test/client.cpp (main):
2771         * tests/Thruput_test/server.cpp (main): Fixed missing declarations
2772         and unused variables and labels.  Fixed uninitialized and unused
2773         variables.
2775         * tests/Thruput_test/ttcp_i.cpp (ttcp_sequence_i):
2776         * tests/Thruput_test/ttcp_i.h (class ttcp_sequence_i): Change to
2777         use POA.
2779         * tests/Cubit/TAO/DII_Cubit/README (server): Changed comment on
2780         how to start the server to indicate the use of "-d" to see the
2781         IOR.
2783         * tests/Cubit/TAO/IDL_Cubit/clnt.cpp (Cubit_Client): Reordered
2784         member initializers to match declaration order
2786         * tests/Cubit/TAO/DII_Cubit/svr.cpp (main): Fixed comparison of
2787         ">=" on an unsigned variable to compare only ">".
2789 Wed Nov 05 20:35:52 1997    <irfan@TWOSTEP>
2791         * tao/orb_core.cpp (fini): Close down the connector. Other
2792         ORB_Core specific objects also need to be cleaned up (and
2793         deleted).
2795         * tests: Made sure that the orb pointer returned by ORB::init() is
2796         correctly freed up.  Following files were updated:
2798           TAO/tests/Cubit/TAO/DII_Cubit/clnt.cpp
2799           TAO/tests/Cubit/TAO/DII_Cubit/svr.cpp
2800           TAO/tests/Cubit/TAO/IDL_Cubit/clnt.cpp
2801           TAO/tests/Cubit/TAO/IDL_Cubit/clnt.h
2802           TAO/tests/Cubit/TAO/IDL_Cubit/svr.cpp
2803           TAO/tests/Cubit/TAO/MT_Cubit/client/Task_Client.cpp
2804           TAO/tests/Cubit/TAO/MT_Cubit/server/svr.cpp
2805           TAO/tests/Cubit/VisiBroker/base_server/server.cpp
2807 Wed Nov  5 19:37:25 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
2809         * TAO_IDL compiler:
2811         files be_array.cpp, be_interface.cpp, be_sequence.cpp,
2812         be_structure.cpp, be_union.cpp, be_enum.cpp - Added MY_BYTE_SEX to
2813         the typecode generation methods.
2815         be_operation.cpp, be_argument.cpp, be_state.cpp, be_codegen.* -
2816         Modified to deal with _out parameters that are passed to the
2817         actual upcalls in the server-side skeleton.
2819         Some minor changes involving removing commented-out code in the
2820         constructors of some classes.
2822         * tests/Thruput_test: Some modifications. Still needs more work
2823         get it to run.
2825 Wed Nov 05 19:26:44 1997    <nw1@COYOTE>
2827         * tests/Cubit/TAO/DII_Cubit/DII_Cubit.dsp:
2828         * tests/Cubit/TAO/IDL_Cubit/IDL_Cubit.dsp:
2829         * tests/Cubit/TAO/MT_Cubit/client/client.dsp:
2830         * tests/Cubit/TAO/MT_Cubit/server/server.dsp:
2831         * tao/TAO.dsp: Renamed debeg version of TAO library to TAO.dll for
2832           NT.
2834 Wed Nov 05 13:39:19 1997  David L. Levine  <levine@cs.wustl.edu>
2836         * TAO_IDL/Makefile: more hacks to not build the IDL compiler
2837           on VxWorks.
2839 Wed Nov 05 12:53:53 1997    <irfan@TWOSTEP>
2841         * tao/interp.cpp:
2843           - Win32 does not use "fixed" byte alignment.  Fixed the
2844             setup_entry macro to take this into account.
2846           - (declare_entry) Seperated the declaration of the structs from
2847             their use.  This is necessary for the VC++4.2 compiler.
2849         * tests/Cubit/TAO/DII_Cubit/svr.cpp (main): Commented out debug
2850           message, since obj is not declared.
2852 Wed Nov 05 01:41:34 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
2854         * TAO version 0.0.22, released Wed Nov 05 01:41:34 1997.
2856 Wed Nov  5 00:48:58 1997  Sergio Flores  <sergio@macarena.cs.wustl.edu>
2858         * tests/Thruput_test/utils.cpp: Delete static definitions of
2859         functions.
2861         * tests/Thruput_test/ttcpS.cpp:
2862         * tests/Thruput_test/ttcpC.cpp (_duplicate):
2863         * tests/Thruput_test/client.cpp (main):
2864         * tests/Thruput_test/ttcp_i.cpp (sendStructSeq):
2865         * tests/Cubit/TAO/DII_Cubit/clnt.cpp:
2866         * tests/Cubit/TAO/DII_Cubit/svr.cpp: Removed a couple of warnings
2867         of unused and uninitialized variables.  Included "ace/ACE.h" to
2868         be able to have the _REENTRANT flag.
2870 Wed Nov  5 00:18:17 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
2872         * TAO_IDL/be/be_sequence.cpp: Added code to generate the missing
2873         operator [] for sequences.
2875 Tue Nov  4 23:38:54 1997  Sumedh Mungee  <sumedh@macarena.cs.wustl.edu>
2877         * tests/Cubit/TAO/MT_Cubit/{server,client}/Makefile: Removed the
2878         (evil) TAO_HAS_TSS_ORB_CORE flag. Now this functionality is
2879         provided by svc.conf.
2881         * tests/Cubit/TAO/MT_Cubit/: Fixed the server code to use the new
2882         IDL compiler generated code.
2884         * TAO/tests/Cubit/TAO/MT_Cubit/client/Task_Client.cpp: Changed the
2885         order of the initializers to remove g++ warnings, and added some
2886         ACE_UNUSED_ARGs. Also removed the hand-crafted stubs, to make way
2887         for the idl-compiler generated files.
2889 Tue Nov  4 23:21:29 1997  Sergio Flores  <sergio@macarena.cs.wustl.edu>
2891         * tests/Cubit/TAO/DII_Cubit/clnt.cpp (main):
2892         * tests/Cubit/TAO/IDL_Cubit/clnt.cpp (run): Changed the format of the
2893         output to be more readable.  Also, fixed resolution of the time for
2894         the cube_struct_dii() call.
2896 Tue Nov  4 21:12:48 1997  Douglas C. Schmidt  <schmidt@macarena.cs.wustl.edu>
2898         * tao/except.h: Removed print_exception().  It seems unnecessary
2899         and pollutes the global namespace.
2901 Tue Nov  4 16:58:12 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
2903         * {tests/Cubit/TAO/DII_Cubit,tests/Cubit/TAO/IDL_Cubit,
2904         tests/Cubit/TAO/MT_Cubit,tests/Demux_Test,
2905         tests/Thruput_test}/Makefile: Added an explicit definition for
2906         VBIN so that VxWorks can build properly.
2908         * tao/orb_core.*: Modified TAO_Resource_Factory so that it divides
2909         the information that it tracks between pre-allocated resources and
2910         resources which are allocated by the application.  Specifically,
2911         the orb and root poa pointers are in here (though it's possible
2912         that when we move to a full POA implementation that the root poa
2913         can be pre-allocated as well).  These pointers are initialized to
2914         zero and are given values by the TAO_ORB_Core instance writing
2915         through back to the TAO_Resource_Factory instance.
2917         Also, this implementation reduced the number of singletons/TSS
2918         singletons utilized by the resource factory.  The initial
2919         "get-it-working" cut used a singleton/tss singleton pair for every
2920         resource, which was quite wasteful in environments such as NT that
2921         don't have many TSS slots available.  Perhaps if we get even more
2922         clever this can be reduced even further.
2924         * tao/except.*: Added print_exception() function for backwards
2925         compatibility.  It simply calls
2926         CORBA::Environment::print_exception().
2928 Tue Nov 04 10:45:07 1997    <nw1@CHA-CHA>
2930         * TAO_IDL/fe/y.tab.cpp: Enclosed a #pragma ident with #if !defined
2931           ACE_WIN32.  Compilers other than SunCC might also need this.
2933 Tue Nov  4 13:47:26 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
2935         * TAO/tests/Cubit/TAO/MT_Cubit: Modified the Makefiles in the
2936         client and server directory so that they use the TAO IDL
2937         compiler. Also added the clean and realclean targets. Updated the
2938         server side cubit.idl because it was different from what the
2939         client was using.
2941         * TAO_IDL compiler: Fixed the following problems
2943         (1) Removed the extra call to Release in the generated _narrow
2944         method  in be_interface.cpp
2946         (2) Used ACE_CORBA_1 (Object) instead of CORBA::Object in the
2947         class declaration for interfaces - in be_interface.cpp
2949         (3) be_interface_fwd.cpp - var_impl had to be updated to generate
2950         code that uses the ptr () method in the calls to _duplicate
2952         * TAO/tests/Cubit/TAO/IDL_Cubit: Fixed some outstanding issues and
2953         made sure that it works. Updated the README file.
2955 Tue Nov 04 09:48:51 1997  David L. Levine  <levine@cs.wustl.edu>
2957         * tao/orb_core.i: disabled the ACE_Hash_Addr<ACE_INET_Addr>::hash_i ()
2958           template specialization on g++/VxWorks because g++
2959           cygnus-2.7.2-960126 can't handle it.
2961         * tao/except.h (line 118): removed backslash at end of comment line.
2962           Some compilers complain about that.
2964         * tao/except.cpp (CORBA_SystemException): reordered initializers to
2965           match declaration order.
2967         * TAO_IDL/Makefile: don't build the IDL compiler on VxWorks.
2969 Tue Nov 04 06:26:14 1997  Carlos O'Ryan  <coryan@MILONGA>
2971         * TAO_IDL/be/be_state.cpp:
2972           It still generated fully qualified names for some sequences,
2973           that will not work on NT.
2975 Tue Nov 04 05:32:44 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
2977         * TAO version 0.0.21, released Tue Nov 04 05:32:44 1997.
2979 Tue Nov  4 04:42:17 1997  Sergio Flores  <sergio@macarena.cs.wustl.edu>
2981         * tests/Thruput_test/server.cpp:
2982         * tests/Thruput_test/client.cpp:
2983         * tests/Thruput_test/ttcpS.cpp:
2984         Fixed "print_exception" errors and errors due to some changes in
2985         the orb compiler.
2987         * tests/Cubit/TAO/MT_Cubit/server/svr.cpp (svc): Use unsigned
2988         int for variable that is used for positive comparisons only.
2990 Tue Nov 04 01:00:51 1997    <nw1@COYOTE>
2992         * tests/Cubit/TAO/IDL_Cubit/IDL_Cubit.dsw: Renamed former test.dsw
2993           to IDL_Cubit.dsw.
2995         * tests/Cubit/TAO/IDL_Cubit/{client,server}.dsp: Renamed
2996           executables for debug version to client.exe and server.exe on
2997           NT.
2999         * tests/Cubit/TAO/DII_Cubit/DII_Cubit.dsw: Renamed former test.dsw
3000           to DII_Cubit.dsw.
3002         * tests/Cubit/TAO/DII_Cubit/{client,server}.dsp: Renamed
3003           executables for debug version to client.exe and server.exe on
3004           NT.
3006         * tests/Cubit/TAO/IDL_Cubit/Cubit.mak: Added cubit.idl into
3007           makefile and its custom build settings.
3009         * tests/Cubit/TAO/MT_Cubit/MT_Cubit.dsw: Renamed former
3010           MTCubit.dsw to MT_Cubit.dsw.
3012 Mon Nov 03 23:16:06 1997    <nw1@COYOTE>
3014         * TAO_IDL/ast/ast_expression.cpp (coerce_value): Added an explicit
3015           cast (float) to avoid NT warnging messages.
3017         * tests/Cubit/TAO/MT_Cubit/server/svr.cpp (svc): Removed
3018           declaration of function print_exception.  It's now a member
3019           function of CORBA_Environment.
3021         * TAO_IDL/fe/y.tab.cpp: Commented out include <values.h>.  This
3022           was causing compilation errors on NT.
3024         * tests/Cubit/TAO/DII_Cubit/svr.cpp:
3025         * tests/Cubit/TAO/DII_Cubit/clnt.cpp: Changed to use the new
3026           CORBA_Environment::print_exception.
3028         * tao/except.h (CORBA_Environment):  Added ACE_Svc_Export to this
3029           class.
3031         * tests/Cubit/TAO/MT_Cubit/MTCubit.dsw:
3032         * tests/Cubit/TAO/MT_Cubit/client/client.dsp:
3033         * tests/Cubit/TAO/MT_Cubit/server/server.dsp:
3034         * tests/Cubit/TAO/IDL_Cubit/client.dsp:
3035         * tests/Cubit/TAO/IDL_Cubit/server.dsp:
3036         * tests/Cubit/TAO/IDL_Cubit/test.dsw:  Added new workspace and
3037           project files.
3039         * TAO_IDL/tao_idl.dsp:  Moved the output executables to the usual
3040           place.
3042         * TAO_IDL/be/be.h: Added #ifdef'ed pragma to diable warning 4250
3043           on NT.  This is only temporary and should be fixed later.
3045         * TAO_IDL/be/be_union.cpp (gen_var_defn):
3046         * TAO_IDL/be/be_structure.cpp (gen_var_defn):
3047         * TAO_IDL/be/be_array.cpp (gen_var_defn): Removed unused local
3048           variables declaration (s).
3050 Mon Nov  3 23:25:30 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
3052         * TAO_IDL Compiler: Files be_sequence.cpp, be_typedef.cpp,
3053         be_state.cpp: Lots of improvements to get sequences to
3054         work. Support for sequences of strings or obj references is
3055         limited. But for all other cases, this seems to be working fine.
3057         There were some unnecessary lines of code in be_state.cpp that
3058         were giving rise to multiple declarations errors. These are
3059         removed.
3061 Mon Nov  3 18:30:09 1997  Sergio Flores  <sergio@macarena.cs.wustl.edu>
3063         * tests/Cubit/TAO/IDL_Cubit/clnt.cpp (main): compare with
3064         "!= 0" rather than "== -1" for errors.
3066         * tests/Cubit/TAO/IDL_Cubit/cubit.idl (enum discrim): Deleted
3067         enumerations not used.
3069         * tests/Cubit/TAO/IDL_Cubit/cubit_i.cpp (please_exit): Fixed
3070         unused variable.
3072         * tests/Cubit/TAO/IDL_Cubit/cubit_i.h (Cubit_Factory_i):
3073         * tests/Cubit/TAO/IDL_Cubit/cubit_i.h (objrefs): Fixed invalid
3074         comparison between a signed and unsigned variable.
3076         * tests/Cubit/TAO/IDL_Cubit/svr.cpp (main): Fixed comparison of
3077         ">=" on an unsigned variable to compare only ">".
3079         * TAO_IDL/be/be_typedef.cpp (gen_client_stubs): Removed unused
3080         variable warning.
3082         * TAO_IDL/fe/y.tab.cpp (yytoks): Added brackets to the array
3083          of structures being initialized.
3085 Mon Nov 03 18:43:37 1997  Carlos O'Ryan  <coryan@MILONGA>
3087         * TAO_IDL/be/be_operation.cpp:
3088           "Fixed" skeleton generation code. Sometimes the formal parameter
3089           names for the skeleton can clash with the user defined names for
3090           the (IDL) method parameter names.
3091           To minimize the chances of such a problem I choose very long
3092           parameter names for the skeleton (things like <_tao_enviroment>
3093           instead of just <env>), but the right solution is to ignore the
3094           user defined parameter names and generate them using some
3095           numbering scheme.
3097         * TAO_IDL/be/be_predefined_type.cpp:
3098           Generate CORBA::_tc_Object as the TypeCode for all pseudo
3099           object, this is a hack but works for the files we are using
3100           right now (maybe it will fail for complex things, like the
3101           interface repository).
3103         * TAO_IDL/be/be_sequence.cpp:
3104           Fixed a number of minor problems:
3105           Missing _ptr type for sequences.
3106           The return type for T_var::operator-> was different in the
3107           .h and .i file.
3109         * TAO_IDL/be/be_type.cpp:
3110           tc_name_ and type_name_ were not initialized, producing some
3111           segfaults under NT.
3113 Mon Nov  3 13:45:54 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
3115         * {tao,TAO_IDL/util,TAO_IDL/narrow,TAO_IDL/fe,TAO_IDL/driver,
3116         TAO_IDL/be,TAO_IDL/ast,Benchmark/benchmark}/Makefile (SHLIB):
3117         Fixed definition so that the extension was(SOEXT) rather than
3118         hard-coded to "so".  This makes things compile on VxWorks better.
3119         Thanks to David Levine for pointing this out.
3121 Sun Nov 02 19:42:08 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
3123         * TAO version 0.0.20, released Sun Nov 02 19:42:08 1997.
3125 Sun Nov  2 19:20:57 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
3127         * TAO/tao/except.*: Made the "print_exception" utility function
3128         as a method of class Environment.
3130         * TAO/tao/giop.cpp: In the TAO_GIOP_Invocation::start method, we
3131         were previously not returning even if the connection establishment
3132         phase was failing. A return statement is inserted. However, there
3133         still are problems when the GIOP_Invocation variable called "call"
3134         goes out of scope.
3136         * TAO_IDL Compiler: be_interface.cpp - The _bind call now
3137         generates a "char IOR" instead of "static char IOR" since the
3138         latter will be problematic with multiple threads. Thanks to
3139         Arturo Montes <mitosys@colomsat.net.co> for pointing that out.
3141         * TAO/test/Cubit/TAO/IDL_Cubit : Improved the code so that it uses
3142         the "print_exception" which is now defined on class
3143         CORBA::Environment. The clnt still needs improvement in terms of
3144         handling invalid parameters and gracefully exiting.
3146         * IDL_Compiler: The bug resulting out of encoding object
3147         references has been fixed atleast on Solaris using g++ as well as
3148         SunCC. Changes made to be_operation.cpp and be_state.cpp such that
3149         the return value for object references is always of type
3150         CORBA::Object_ptr rather than the real interface type. In
3151         addition, keeping in perspective the change that Irfan made and
3152         described below (in encode.cpp), the Any that holds the result
3153         *does not* own the value. In contrast, for the rest of the cases
3154         the result (of type Any) owns the result.
3156         * be_sequence.cpp: Additional work in progress. Full changelog
3157         entry will be available in the next commit.
3159 Fri Oct 31 22:20:06 1997    <irfan@TWOSTEP>
3161         * tao/encode.cpp (encode): Changed cast of data from
3162           *(CORBA::Object_ptr *) to (CORBA::Object_ptr).
3164         * tao/default_server.cpp (parse_args): Manipulation of curarg was
3165           all messed up.  Fixed it such that it was not incremented
3166           unnecessarily.
3168 Fri Oct 31 13:46:04 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
3170         * docs/Options.html: Updated to specify new TAO_Resource_Factory
3171         service and its options.
3173         * docs/releasenotes/orbcore.html: Updated to reflect recent work.
3175         * tao/orb_core.*: Added the acceptor and related members and
3176         methods from CORBA_ORB.  Made TAO_Resource_Factory a Service
3177         Object so that it can be loaded via the Service Configurator.  The
3178         option to change its resources between global and thread-specific
3179         is "-ORBresources global" and "-ORBresources tss", respectively.
3181         * tao/orbobj.*: Moved the acceptor and related members and methods
3182         to TAO_ORB_Core.
3184         * tests/.../svc.conf: Added Resource Factory as a service.
3186         * tests/Cubit/TAO/{DII_Cubit,MT_Cubit}/cubitS.cpp,
3187         tests/Thruput_test/ttcpS.cpp, tao/poa.cpp: Changed acceses that
3188         used to go to CORBA_ORB::params() to go to TAO_ORB_Core::params().
3190 Fri Oct 31 08:39:54 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
3192         * TAO_IDL Compiler - Intermediate commit of all improved features.
3194         * be/be_type.* : Improved the nested_type_name method such that it
3195         now takes an additional parameter called suffix that has a default
3196         value of NULL. Carlos, Sergio, and myself independently found an
3197         extremely bad piece of code that was getting generated that looked
3198         like the following:
3199                 ACE_NESTED_CLASS (XXXX, YYYY)_ptr
3201         The new convention is to pass the suffix such as "_ptr", or "_var"
3202         or "_out" to this method so that it can generate valid code of the
3203         form:
3204                 ACE_NESTED_CLASS (XXXX, YYYY_ptr)
3206         * be/be_decl.cpp : All the methods such as repoID (), flatname
3207         (), etc now check if the corresponding data member was created or
3208         not. If they are not, the corresponding private method e.g.,
3209         compute_repoID (), are invoked. This way we do not have to call
3210         all these private methods in the constructors of all the derived
3211         be classes. The one compelling reason to do it this way is because
3212         the "names" for certain types are not available at construction
3213         time, e.g., sequences. A name to a sequence is assigned from the
3214         context it is in i.e., whether it was a named sequence in the form
3215         of a "typedef" statement or it was an anonymous sequence.
3217         As of this commit, all calls to such compute_*  methods in the
3218         constructors of all the derived be classes are commented out and
3219         will eventually disappear in the next commit.
3221         * be/be_decl.cpp : One more change in be_decl.cpp is to add the
3222         case for "interface_fwd" in the generation of the _var and _out
3223         definitions and implementations.
3225         * be/be_helper.* : Added two new methods called "gen_ifdef_macro"
3226         and "gen_endif". These are required to generate the #if !defined
3227         (...) <code> #endif macros. These are very essential if the IDL
3228         has forward declarations of interfaces. Forward declarations of
3229         interfaces must generate a forward class declaration. In addition,
3230         it has to typedef the "_ptr" type and define the "_var" and "_out"
3231         types. However, the real "be_interface" class does this too which
3232         can result in "multiple declarations" errors from the C++
3233         compiler. Hence we use this scheme. As in the case of the
3234         nested_type_name method mentioned above, this method also takes a
3235         default "suffix" parameter (= 0). This is required for the "_var",
3236         "_ptr", and "_out" suffixes.
3238         * be/be_interface.cpp
3239           be/be_interface_fwd.cpp:
3241         Used the TAO_OutStream::gen_ifdef_macro () and gen_endif methods
3242         for the definitions of the _ptr, _var, and _out classes and their
3243         implementations.
3245         *be/be_sequence.* : Lot of modifications and change in the design
3246         in terms of handling the base types that themselves could be
3247         sequences. Although the AST_Sequence i.e., OMG IDL does not define
3248         a "sequence" to be a scope producing construct like structs or
3249         unions, we choose to make "be_sequence" to be a scope producing
3250         construct. This is no way alters the OMG IDL language because the
3251         front-end is still the same. "be_sequence" was made to inherit
3252         from scope because the sequence mapping gives rise to a C++ class
3253         which is a scoping construct. This way, base types that turn out
3254         to be anonymous sequences can be assigned a parent scope and their
3255         name generation will fall in line with other classes.
3257         There are certain features missing with sequences at this commit
3258         time, but this should reduce tweaking the generated code to a
3259         large extent.
3261         * be/be_state.cpp: Update the code for handling sequences and
3262         typedefs. Typedefs should be handled properly now.
3264         * All other *.cpp files: Either commented out the compute_* calls
3265         in the constructors or removed them.
3267 Fri Oct 31 03:00:09 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
3269         * tao/orb_core.cpp: Moved call to connector's open() into init(),
3270         thus insuring that it gets called only AFTER all the resources are
3271         available from the Resource Factory.
3273         * tao/orb_core.*: Changed data members to be associations rather
3274         than containment.  This allows decoupling of the
3275         "thread-specificness" of these resources from the
3276         thread-specificness of the general TAO_ORB_Core container.  Also
3277         added set accessors for those resources.
3279         Added TAO_Resource_Factory class from which the TAO_ORB_Core
3280         container initializes itself.  For now this remains a singleton
3281         which is, at compile-time, determined to be either TSS or not.
3282         But, soon, it will be loaded via the Service Configurator and its
3283         TSS nature determined at runtime.
3285         * tao/giop.h: Updated to use the new ACE macro
3286         ACE_CLASS_IS_NAMESPACE.
3288         * tao/default_server.*: Implemented the new open() method so that
3289         it initializes the Reactive and Threaded strategies from the
3290         information in TAO_ORB_Core.
3292         * tao/server_factory.*: Added open() method to be called after all
3293         ORB resources are loaded up.  This method can then be used by a
3294         strategy factory to further initialize its contained strategies if
3295         they require handles to resources to which the ORB might legislate
3296         access.  The default implementation does nothing.
3298 Fri Oct 31 01:03:05 1997    <irfan@TWOSTEP>
3300         * tests/Cubit/TAO/IDL_Cubit/svr.cpp (main): obj was not declared.
3301           Commented out use of obj in dmsg1.
3303         * tests/Cubit/TAO/IDL_Cubit/cubit_i.cpp (Cubit_Factory_i):
3304           numobjs_ was used before it was assigned.
3306         * TAO/TAO_IDL/TAO_IDL.{mak,mdp}: Added VC++4.2 make files.
3308         * TAO_IDL/ast/ast_expression.cpp (dump): Streaming the enum was
3309           ambiguous.  Therefore the enum was cast to an int.
3311 Thu Oct 30 22:50:44 1997  Carlos O'Ryan  <coryan@MILONGA>
3313         * tao/corba.h:
3314           Added a definition for ACE_NESTED_CLASS, maybe it is defined in
3315           some place else, but I couldn't find it.
3317         * TAO_IDL/be/be_interface.cpp:
3318           Fixed the definition for skeleton destructors.
3320         * TAO_IDL/be/be_helper.cpp:
3321           Added a lot of redundant ACE_OS::fflush() calls. Apparently we
3322           have two FILE* or file descriptors over the same file, bt the
3323           fflush hides the problem.
3325         * TAO_IDL/be/be_decl.cpp:
3326           Fixed inconsistency between operator-> declaration and
3327           definition for _out classes.
3329 Thu Oct 30 14:06:54 1997  Sergio Flores  <sergio@polka.cs.wustl.edu>
3331         * TAO_IDL/fe/Makefile:
3332         Added an expression to the sed command in the rule to construct
3333         lex.yy.cpp, that replaces ECHO with TAO_ECHO, because a
3334         different ECHO macro is already defined in
3335         /usr/include/sys/termios.h
3337         * TAO_IDL/fe/idl.ll:
3338         Fixed some warnings about nested comments.
3339         Changed the declaration of variable i to outside of
3340         the 'for' initialization to avoid obsolete binding warnings.
3342         * TAO_IDL/be/be_interface_fwd.cpp (gen_client_header):
3343         Added ACE_UNUSED_ARG macro to avoid unused variable warning,
3344         for variable i.
3346         * TAO_IDL/be/be_constant.cpp (exprtype_to_string):
3347         * TAO_IDL/util/utl_error.cpp (exprtype_to_string):
3348         Added case statements to handle the rest of un-handled
3349         enumerations from AST_Expression::ExprType.  These will
3350         handle a default value (i.e. NULL).  Enumerations added are:
3351         AST_Expression::EV_wstring
3352         AST_Expression::EV_wchar
3353         AST_Expression::EV_longdouble
3354         AST_Expression::EV_ulonglong
3355         AST_Expression::EV_longlong
3357 Thu Oct 30 09:56:41 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
3359         * tao/giop.h: Added comments to TAO_GIOP class explicitly pointing
3360         out its use as a namespace.  Concurrently, I also scoped the CTOR,
3361         Copy CTOR, and DTOR as 'private' so nobody can mistakenly
3362         instantiate one of these puppies.
3364 Thu Oct 30 03:40:26 1997    <nw1@COYOTE>
3366         * tests/Cubit/TAO/DII_Cubit/client.dsp:
3367         * tests/Cubit/TAO/DII_Cubit/server.dsp:  Updated include files
3368           path and libarary path.
3370         * tao/giop.cpp (close_connection): Use ACE_HANDLE instead of int.
3372 Thu Oct 30 02:53:20 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
3374         * TAO version 0.0.19, released Thu Oct 30 02:53:20 1997.
3376 Thu Oct 30 02:20:21 1997  Sergio Flores  <sergio@polka.cs.wustl.edu>
3378         * tests/IDL_Cubit:
3379         Added more comments and changed the header to be ACE'ified.
3380         Make output more consistent.
3382 Thu Oct 30 02:12:27 1997 Sumedh Mungee  <sumedh@macarena.cs.wustl.edu>
3384         * tests/{TAO, Cubit}: Changed the directory heirarchy to the
3385         following: tests/Cubit/TAO/ now contains all the Cubit examples,
3386         i.e. IDL_Cubit, MT_Cubit and DII_Cubit, instead of tests/. Updated
3387         the README and Makefiles to reflect this. DII_Cubit is the
3388         handcrafted "original" Cubit example.
3390         * tests/Cubit/COOL: Added the COOL version of the Cubit test. The
3391         COOL version is written for Chorus COOL version 4.1.
3393 Wed Oct 29 22:26:10 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
3395         * tests/IDL_Cubit/clnt.cpp (init): Fixed the error handling so we
3396         exit correctly when things go wrong.
3398         * tao/connect.cpp (open): Revised the code to use the new
3399         ACE_LACKS_SOCKET_BUFSIZ to detect when this feature isn't
3400         supported.
3402         * tao/{giop,connect}: Added a nifty typedef called TAO_SVC_HANDLER
3403         to remove the drudgery of expanding the template each time.
3405         * tao: Changed the name of TAO_OA_Connection_Handler to
3406         TAO_Server_Connection_Handler to be compliant with the
3407         TAO_Client_Connection_Handler.
3409 Wed Oct 29 20:47:47 1997  Sergio Flores  <sergio@polka.cs.wustl.edu>
3411         * tests/IDL_Cubit/clnt.cpp:
3412         * tests/IDL_Cubit/clnt.h:
3413         Cleaned up the code.  Added ACE_Profile_Timer to time the calls.
3414         Changed copyright header.  Added more comments.
3416 Wed Oct 29 18:55:57 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
3418         * tao/giop: Added "_"'s to the data members in
3419         TAO_GIOP_Invocation.
3421         * tao/giop (send_request): Swaped the order of the parameters for
3422         send_request() so that it would be consistent with recv_request.
3424         * tao/{connect,giop}: Changed read_message() to recv_request(),
3425         and send_message() to send_request() since these things really
3426         work on GIOP requests.
3428         * tao/{connect,giop}: Changed read_message() to recv_message(),
3429         which is more like other parts of ACE.
3431         * tao/connect.cpp: Fixed the calls to read_message() and
3432         send_message() so that they don't try to modify "this."
3434         * tao/giop: Changed the send_message() and read_message() in the
3435         TAO_GIOP class to take ACE_Svc_Handler<ACE_SOCK_STREAM,
3436         ACE_NULL_SYNCH> rather than TAO_Client_Connection_Handler.
3438 Wed Oct 29 17:53:12 1997    <irfan@CHA-CHA>
3440         * tao: Added TAO_HAS_TSS_ORB_CORE to tao and Cubit NT makefiles.
3441           This probably needs to be added to the other NT makefiles.
3443         * tests/Cubit/TAO/svc.conf: Updated files to pass the correct
3444           options to the factory.
3446 Wed Oct 29 16:07:20 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
3448         * tao/giop.*: Changed most methods that took ACE_SOCK_Stream&
3449         parameters to take TAO_Client_Connection_Handler*& parameters.
3450         This makes it easier to clean up properly after errors.  Also
3451         #ifdef'd out seemingly unused code (TAO_GIOP::incoming_message).
3452         Fixed call to ACE_Svc_Handler::idle() to not contain an argument.
3454         * docs/Options.html: Updated the documentation to reflect recent
3455         changes.
3457 Wed Oct 29 15:59:30 1997  Sergio Flores  <sergio@polka.cs.wustl.edu>
3459         * tests/IDL_Cubit/clnt.cpp: OO'ified the code. Added class
3460         Cubit_Client.
3461         * tests/IDL_Cubit/clnt.h: added this file to contain  the class
3462         definition.
3464 Wed Oct 29 11:01:11 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
3466         * TAO_IDL compiler: be_type.cpp::nested_type_name: A quick commit
3467         made that includes an improvement over the previous scheme of
3468         generating ACE_NESTED_CLASS macros. We handle the problem of
3469         generating fully scoped names for types that were defined in some
3470         ancestor of the scope in which that type is being used.
3472         * Makefiles under TAO_IDL: Fixed a bug in the Makefiles under all
3473         the subdirectories. This bug was reported by "ARTURO MONTES"
3474         <mitosys@colomsat.net.co>. The bug was causing circular
3475         dependencies on the libraru that was getting compiled.
3477 Wed Oct 29 06:17:36 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
3479         * tao/default_server.cpp (parse_args): Must increase the loop
3480           counter.
3482 Wed Oct 29 02:11:43 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
3484         * TAO version 0.0.18, released Wed Oct 29 02:11:43 1997.
3486 Wed Oct 29 00:56:26 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
3488         * tests/Cubit/TAO/svc.conf: Updated documentation comments to
3489         reflect factory option changes.
3491         * tao/orbobj.*: Wiped argvec_shift and all its bugs off the face
3492         of the earth.  Manojkumar Acharya <cvsf325.gpt.co.uk> should prove
3493         to be very happy about this turn of events. :-)
3495         * tao/orbobj.cpp: Weeded out old, dead code here and there and
3496         migrated much of what had been in ORB_init() into
3497         TAO_ORB_Core::init().
3499         * tao/orb_core.*: Added methods init() and fini() which perform
3500         ORB Core-related initializations and cleanups, respectively.  This
3501         is all in anticipation of having a Unified Factory which provides
3502         ORB Core as well as other information.  Also began stubbing out
3503         and migrating various data members and associated accessors so
3504         that they are pointers rather than actual members.  The next step
3505         is to actually make them pointers and have everything get
3506         initialized properly and deterministically and keep everything
3507         working.
3509         * tao/{giop,orb_core}.cpp: Revised code due to recent changes in
3510         ACE related to the Caching connector.
3512         * tao/default_server.{h,cpp} (parse_args): This method now uses
3513         options of the style -ORBfoo rather than the previously-cryptic
3514         single-letter options.  This should allow us to eventually allow
3515         this same routine to parse args from the command line as well as
3516         inside the svc.conf file.  The price we pay for consistency,
3517         however, is verbosity to the point of insanity (e.g.,
3518         -ORBconcurrency...blech!)  These options are briefly documented in
3519         the method header as well as in subsequent svc.conf files.
3521         * tao/decode.cpp: Added some comments for arguments.
3523         * tao/connect.{h,cpp}: Moved Connector-related typedefs and
3524         corresponding template instantiations into the proper
3525         file--orb_core.*.
3527         * tao/orb_core.cpp (init): Moved much of what used to be
3528         ORB_init() into here.  Changed the manner in which objref style
3529         was determined--it's no longer via a special ORB name but rather
3530         by the -ORBobjrefstyle option which can have either the value
3531         "IOR" or "URL" (default is URL).
3533 Tue Oct 28 21:15:36 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
3535         * build/SunOS5.5/TAO/tests/IDL_Cubit/clnt.cpp (main): Fixed the
3536         code so that if you give incorrect parameters the program exits
3537         cleanly, rather than segfaulting.
3539 Tue Oct 28 20:49:28 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
3541         * tao/giop.cpp (start): NT Access Violation error, AGAIN! Added
3542           codes to reset this->handler_ so that
3543           ACE_Cached_Connect_Strategy won't complain.
3545 Tue Oct 28 19:19:05 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
3547         * TAO_IDL/be/{be_state.cpp, be_union.cpp, be_struct.cpp}: Added code
3548         that will generate the ACE_NESTED_CLASS macro
3550         *TAO_IDL/be/be_type.cpp: Implemented be_type::nexted_type_name
3551         that will generate the ACE_NESTED_CLASS macro. However, this may
3552         not be completely correct at this point because we want to see if
3553         teh compiler fails for types defined in some ancestor and whose
3554         fully scoped names are generated .
3556         * TAO_IDL/be/be_interface.cpp: Added code that will generate the
3557         _bind call on the interface class.
3559         * TAO/tests/IDL_Cubit: Added the _bind call in clnt.cpp. Improved
3560         the README file.
3562         *MAXNAMELEN : There was a clash with TAO_CodeGen::MAXNAMELEN. So
3563         it has been substituted by NAMEBUFSIZE as a macro in be_codegen.h
3565 Mon Oct 27 22:22:22 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
3567         * TAO_IDL/be_decl.cpp: Added a ptr () function to the _var classes
3568         hat returns the underlying ptr_ data member. This ptr () member
3569         function is now used to pass a pointer type to constructor and
3570         assignment operator from a T_var class.
3572         * TAO_IDL/be_state.cpp: Important changes related to generation of
3573         return values of operations in the stubs. In addition, an & was
3574         missing for passing string types. Some additional bugs arising out
3575         of operations with void return type have been fixed.
3577         * ./tests/IDL_Cubit: This test has been modified to include a
3578         factory interface that reads a key for the cubit object and
3579         produces an obj reference for Cubit. In addition, a preliminary
3580         version of the _bind call has been tested with IDL_Cubit.
3582         *MAXNAMELEN : Carlos informed me that MAXNAMELEN was a small
3583         constant on some platforms. This has been changed to
3584         TAO_CodeGen::MAXNAMELEN with a value of 100.
3586 Mon Oct 27 22:07:58 1997  Carlos O'Ryan  <coryan@MILONGA>
3588         * TAO_IDL/be/be_array.cpp:
3589         * TAO_IDL/be/be_helper.cpp:
3590         * TAO_IDL/be/be_sequence.cpp:
3591         * TAO_IDL/be/be_structure.cpp:
3592         * TAO_IDL/be/be_typedef.cpp:
3593         * TAO_IDL/be/be_union.cpp:
3594           Set this->cli_stub_gen_ to I_TRUE once the code has been
3595           emitted.
3597 Mon Oct 27 19:34:08 1997  Carlos O'Ryan  <coryan@MILONGA>
3599         * TAO_IDL/be/be_exception.cpp:
3600         * TAO_IDL/be/be_enum.cpp:
3601           Set this->cli_stub_gen_ to I_TRUE at the end.
3603         * TAO_IDL/be/be_typedef.cpp:
3604           Set the state to TAO_CodeGen::TAO_TYPEDEF_CH instead of just
3605           struct.
3607 Mon Oct 27 15:22:24 1997  Sergio Flores  <sergio@polka.cs.wustl.edu>
3609         * TAO_IDL/be/be_state.cpp:
3610         * TAO_IDL/be_include/be_codegen.h:
3611         * TAO_IDL/be_include/be_factory.h:
3612         * TAO_IDL/be_include/be_state.h:
3613         * tao/iioporb.cpp:
3614         * tao/marshal.cpp:
3615         * tao/optable.cpp:
3616         * tao/optable.h:
3617         * tao/singletons.h:
3618         The ACE_Singleton lock type needs to be changed from
3619         ACE_SYNCH_MUTEX (or ACE_SYNCH_RW_MUTEX) ACE_SYNCH_RECURSIVE_MUTEX.
3620         ACE handles those more efficiently for its singletons.  Change
3621         suggested by David Levine.
3623 Mon Oct 27 11:59:51 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
3625         * tao/orbconf.h: Made it so _FAR is defined all the time.  Thanks
3626         to Manojkumar Acharya <cvsf325.gpt.co.uk> for reporting this.
3628 Sun Oct 26 22:18:01 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
3630         * TAO version 0.0.17, released Sun Oct 26 22:18:01 1997.
3632 Sun Oct 26 17:53:25 1997  Douglas C. Schmidt  <schmidt@macarena.cs.wustl.edu>
3634         * {tao,tests}/Makefile: Commented out the TAO_HAS_TSS_ORBCORE in
3635         these Makefiles since it is going away anyhow and is confusing...
3637         * tests/IDL_Cubit/svc.conf,
3638           tests/Cubit/TAO/svc.conf:
3639         Changed the default concurrency policy to be reactive so that
3640         things work correctly if TAO_HAS_TSS_ORBCORE.  Thanks to Sumedh
3641         for pointing this out.
3643         * tao/orbobj.cpp (ORB_init): Put the TAO_DEFAULT_SERVER_PORT into
3644         ACE's OS.h file and used it in TAO.
3646 Sun Oct 26 15:07:18 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
3648         * tao/params.h: Eliminated forward decls of the now-defunct ROA
3649         class.
3651         * tao/orb_core.h (TAO_DEFAULT_PORT): Added manifest constant for
3652         default port.
3654         * tao/orbobj.cpp (ORB_init): Eliminated ugly anonymous constant
3655         use for hbuf's size.  Utilized manifest constant for default port.
3657         * tao/giop.cpp: Changed calls to
3658         TAO_Client_Connection_Handler::in_use() to call the underlying
3659         Svc_Handler::idle().
3661         * tao/connect.{h,i}: Eliminated in_use() flags because they're no
3662         longer needed with the new Strategy Connector.
3664         * tao/iioporb.cpp (string_to_object): Removed setting of the orb
3665         in the underlying CORBA::Object because it's no longer there.
3667         * tao/object.{h,i} (CORBA_Object): Eliminated the pointer to an orb
3668         within this object.  This should help solve some problems in
3669         passing object references across the wire.
3671         * tao/connect.cpp: Added template instantiations for
3672         ACE_Hash_Map_Iterator to reflect Irfan's recent changes.
3674         * tests/IDL_Cubit/README: Updated documentation on the server to
3675         reflect current reality.
3677 Sun Oct 26 01:01:32 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
3679         * tao/orbobj.cpp: Redid the template specialization of Hash_Addr
3680         to account for the new changes.
3682 Sun Oct 26 01:05:36 1997    <nw1@COYOTE>
3684         * tao/corba.h: Changed from using Strategies_T.h to Strategies.h.
3686         * tao/connect.h: Removed a template argument form ACE_Hash_Addr.
3687           Removed explicit instantiation of compare_i.
3689         * tao/connect.cpp:  Removed a template argument from explicit
3690           instantiation of ACE_Hash_Addr.
3692         * tests/Cubit/TAO/clnt.cpp (main): Added a simple class
3693           ACE_Winsock_proper_shutdown here to shutdown winsock properly.
3694           This class should be removed later once we figure out how to
3695           close down winsock properly from ACE.
3697         * tests/Cubit/TAO/svc.conf: Changed the name of shared object from
3698           libTAO to TAO.  Added configuration lines for using debug
3699           version of TAO library on NT.
3701 Sun Oct 26 01:47:04 1997  Sergio Flores  <sergio@macarena.cs.wustl.edu>
3703         * TAO_IDL/be/be_codegen.cpp (upcase):
3704         * TAO_IDL/util/utl_string.cpp (canonicalize):
3705         * TAO_IDL/be/be_decl.cpp (tc_name2long):
3706         Added "unsigned" to index variable "i" used in for() loop,
3707         to avoid warning "comparison between unsigned and signed"
3709         * TAO_IDL/be/be_decl.cpp (compute_flatname):
3710         * TAO_IDL/be/be_decl.cpp (compute_repoID):
3711         * TAO_IDL/be/be_interface.cpp (compute_fullskelname):
3712         Fixed error "second - I_FALSE;", should be "second = I_FALSE;"
3714         * TAO_IDL/be/be_operation.cpp (gen_server_skeletons):
3715         * TAO_IDL/be/be_state.cpp (gen_code):
3716         Initialized pointers to 0
3718         * TAO_IDL/driver/drv_preproc.cpp (DRV_pre_proc):
3719         * TAO_IDL/be/be_operation.cpp (gen_server_header):
3720         * TAO_IDL/be/be_operation.cpp (gen_client_header):
3721         * TAO_IDL/be/be_decl.cpp (gen_out_defn):
3722         * TAO_IDL/be/be_decl.cpp (gen_var_defn):
3723         * TAO_IDL/be/be_scope.cpp (gen_client_header):
3724         * TAO_IDL/be/be_state.cpp (gen_code):
3725         * TAO_IDL/be/be_helper.cpp (operator<<):
3726         * TAO_IDL/be/be_union.cpp (tc_encap_len):
3727         * TAO_IDL/be/be_typedef.cpp (gen_client_stubs):
3728         * TAO_IDL/be/be_string.cpp (gen_client_header):
3729         * TAO_IDL/be/be_root.cpp (gen_idl2cplusplus_mapping):
3730         * TAO_IDL/be/be_predefined_type.cpp (gen_typecode):
3731         * TAO_IDL/be/be_interface.cpp (gen_client_stubs):
3732         * TAO_IDL/be/be_interface.cpp (gen_server_skeletons):
3733         * TAO_IDL/be/be_interface.cpp (gen_operation_table):
3734         * TAO_IDL/be/be_interface.cpp (gen_server_inline):
3735         * TAO_IDL/be/be_interface.cpp (tc_encap_len):
3736         * TAO_IDL/be/be_field.cpp (gen_encapsulation):
3737         * TAO_IDL/be/be_field.cpp (tc_encap_len):
3738         * TAO_IDL/be/be_enum_val.cpp (gen_encapsulation):
3739         * TAO_IDL/be/be_enum.cpp (tc_encap_len):
3740         * TAO_IDL/be/be_constant.cpp (gen_client_header):
3741         * TAO_IDL/be/be_constant.cpp (gen_client_stubs):
3742         * TAO_IDL/be/be_argument.cpp (gen_client_header):
3743         * TAO_IDL/be/be_argument.cpp (gen_client_stubs):
3744         * TAO_IDL/be/be_argument.cpp (gen_server_header):
3745         * TAO_IDL/be/be_argument.cpp (gen_server_skeletons):
3746         * TAO_IDL/be/be_array.cpp (be_array):
3747         * TAO_IDL/be/be_array.cpp (gen_client_header):
3748         * TAO_IDL/be/be_array.cpp (gen_client_inline):
3749         * TAO_IDL/be/be_array.cpp (gen_forany_defn):
3750         * TAO_IDL/be/be_array.cpp (gen_forany_impl):
3751         * TAO_IDL/util/utl_stack.cpp (push):
3752         Added ACE_UNUSED_ARG macro to avoid unused variable warning,
3753         for variable slen.
3755         * TAO_IDL/be_include/be_helper.h (class TAO_OutStream):
3756         Made destructor virtual; we have virtual member functions.
3758         * TAO_IDL/be/be_codegen.cpp (TAO_CodeGen):
3759         * TAO_IDL/be/be_decl.cpp (be_decl):
3760         * TAO_IDL/util/utl_stack.cpp (UTL_ScopeStack):
3761         * TAO_IDL/util/utl_scope.cpp (UTL_ScopeActiveIterator):
3762         Reordered member initializers to match declaration order to
3763         satisfy the compiler.
3765         * TAO_IDL/util/utl_scope.cpp (lookup_primitive_type):
3766         Added "default" case to switch to return NULL.
3768         * TAO_IDL/util/utl_scope.cpp (add_attribute):
3769         * TAO_IDL/util/utl_scope.cpp (add_operation):
3770         * TAO_IDL/util/utl_scope.cpp (add_argument):
3771         * TAO_IDL/util/utl_scope.cpp (add_union_branch):
3772         * TAO_IDL/util/utl_scope.cpp (add_field):
3773         * TAO_IDL/util/utl_scope.cpp (add_typedef):
3774         * TAO_IDL/util/utl_scope.cpp (add_sequence):
3775         * TAO_IDL/util/utl_scope.cpp (add_array):
3776         Use 0 instead of NULL to initialize pointers in the
3777         member initialization list, again to avoid ANSI C++ forbids
3778         implicit (void *) conversions warnings.
3780 Sun Oct 26 01:01:32 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
3782         * TAO version 0.0.16, released Sun Oct 26 01:01:32 1997.
3784 Sun Oct 26 00:32:29 1997  Douglas C. Schmidt  <schmidt@macarena.cs.wustl.edu>
3786         * TAO/TAO_IDL/fe/idl.ll: Reverted a change that Carlos had
3787         overwritten.  I guess he's not getting enough sleep these
3788         days... ;-)
3790 Sun Oct 26 00:31:38 1997    <irfan@TWOSTEP>
3792         * tao/orb_core.i (hash_i): Redid the specialization in view of the
3793           new changes.
3795 Sat Oct 25 18:14:14 1997  Douglas C. Schmidt  <schmidt@macarena.cs.wustl.edu>
3797         * TAO_IDL/be/be_interface.cpp (be_interface): Worked around a
3798         nasty MSVC++ compiler bug that doesn't like CORBA::Object
3799         (object_ptr).  So we use an existing ACE macro for this.
3801         * TAO_IDL/be/be_interface.cpp (be_interface): Fixed yet another
3802         round of uninitialized data members.  It is clear that the
3803         original authors of this code wouldn't pass my ugrad programming
3804         course...
3806         * TAO_IDL/fe/idl.ll (idl_parse_line_and_file): Had to make a minor
3807         change to skip over the #line directive from Microsoft.  In
3808         addition, had to add some code to put Microsoft-style pathnames
3809         into a canonical form (i.e., replacing = '\\' with '\').  Thanks
3810         to Darrell for helping with this.
3812         * TAO_IDL/fe/idl.ll: Added a new rule to handle the fact
3813         that the Microsoft C++ preprocessor generates tags of the
3814         form
3816         #line 1 "bar.idl"
3818         rather than
3820         #1 "bar.idl"
3822         which is what UNIX C++ compilers seem to do.
3824         * TAO_IDL/be/be_decl.cpp (compute_fullname, compute_flatname):
3825         Fixed a nasty bug where the original author thought new always
3826         returned 0'd memory...  Sheesh!
3828         * TAO_IDL/driver/drv_preproc.cpp: Changed fd < 0 to fd ==
3829         ACE_INVALID_HANDLE to be more portable.
3831         * TAO_IDL/be/be_decl.cpp (be_decl): There were two fields,
3832         flatname_ and repoID_, that weren't given initial values of 0.
3833         Thanks to Purify for finding this!
3835         * TAO_IDL/fe/idl.{yy,ll}: Replaced all uses of type names <name>
3836         (e.g., FLOAT) with IDL_<name> (e.g., IDL_FLOAT) so that the code
3837         won't bomb on lame systems like NT that typedef basic types to all
3838         capitals (e.g., typedef float FLOAT).
3840 Sat Oct 25 22:28:42 1997  Carlos O'Ryan  <coryan@MILONGA>
3842         * TAO_IDL/fe/idl.ll: Since yytext may be an "unsigned char*" under
3843           HP-UX they define an "alias" __yytext. This hack fails miserably
3844           when using flex, since then the yytext thing can change on the
3845           fly. I use an inline function instead.  Added support for #line
3846           preprocessor directives.
3848         * TAO_IDL/driver/drv_preproc.cpp: Documented some of my changes
3849           for NT, namely the fact that unlinking the output file while
3850           still open causes the parsing to fail on NT.
3852         * TAO_IDL/tao_idl.dsp: Added new folders for source files, header
3853           files, template files, etc. I modelled this based on the ACE
3854           project files.
3856 Sat Oct 25 22:05:43 1997  Sergio Flores  <sergio@macarena.cs.wustl.edu>
3858         * TAO_IDL/ast/ast_constant.cpp (exprtype_to_string):
3859         Added case statements to handle the rest of un-handled
3860         enumerations from AST_Expression::ExprType.  These will
3861         handle a default value (i.e. the same case as
3862         AST_Expression::EV_none).
3864         * TAO_IDL/ast/ast_expression.cpp (operator==):
3865         * TAO_IDL/ast/ast_expression.cpp (compare):
3866         Make the default return value I_FALSE instead of NULL which
3867         was  giving "lacks a cast" warning.
3869         * TAO_IDL/ast/ast_expression.cpp (fill_definition_details):
3870         Use 0 instead of NULL to initialize pointers in the
3871         member initialization list, again to avoid ANSI C++ forbids
3872         implicit (void *) conversions warnings.
3874         * TAO_IDL/ast/ast_expression.cpp (eval_symbol):
3875         Initialized pointers to 0.
3877 Sat Oct 25 17:45:17 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
3879         * TAO_IDL/driver/drv_preproc.cpp: Fixed the same bug that Sumedh
3880         fixed. In addition, ACEified the calls to strcat and strcmp in
3881         that file.
3883         * TAO_IDL/fe/idl.ll: Used %array in the defintion section so that
3884         flex uses yytext as an array of characters rather than pointer to
3885         char. The pointer case was resulting in a segmentation fault due
3886         to lack of memory allocation for the yytext variable. However, we
3887         choose to use the array approach to be compatile with "lex"
3888         behavior.
3890 Sat Oct 25 1997  Sumedh Mungee  <sumedh@lindy.cs.wustl.edu>
3892         * TAO_IDL/driver/drv_preproc.cpp: Fixed proper tmp filename
3893         creation.
3895 Sat Oct 25 14:14:53 1997  Carlos O'Ryan  <coryan@MILONGA>
3897         * TAO_IDL/tao_idl.dsw:
3898         * TAO_IDL/tao_idl.dsp:
3899           Added a MSVC++ project file for the IDL compiler, needs several
3900           revisions byt the NT experts before shipping, but it has served
3901           me well.
3903         * TAO_IDL/driver/drv_fork.cpp:
3904         * TAO_IDL/driver/drv_preproc.cpp:
3905           We use ACE components to fork&exec subprocesses, get the default
3906           TMP directory and generate protable pathnames.
3907           In one case the mapping to NT is not clear: the use case is fork
3908           to get a "fresh" copy of the process and provide a unit of
3909           protection for the parent; this feature is only used if more
3910           than one IDL file is compiled at the same time.
3912         * TAO_IDL/be/be_decl.cpp:
3913           Fixed minor bug, it said "second - I_FALSE;", it should be
3914           "second = I_FALSE
3916         * TAO_IDL/ast/ast_argument.cpp:
3917         * TAO_IDL/ast/ast_array.cpp:
3918         * TAO_IDL/ast/ast_attribute.cpp:
3919         * TAO_IDL/ast/ast_check.cpp:
3920         * TAO_IDL/ast/ast_concrete_type.cpp:
3921         * TAO_IDL/ast/ast_constant.cpp:
3922         * TAO_IDL/ast/ast_decl.cpp:
3923         * TAO_IDL/ast/ast_enum.cpp:
3924         * TAO_IDL/ast/ast_enum_val.cpp:
3925         * TAO_IDL/ast/ast_exception.cpp:
3926         * TAO_IDL/ast/ast_expression.cpp:
3927         * TAO_IDL/ast/ast_field.cpp:
3928         * TAO_IDL/ast/ast_generator.cpp:
3929         * TAO_IDL/ast/ast_interface.cpp:
3930         * TAO_IDL/ast/ast_interface_fwd.cpp:
3931         * TAO_IDL/ast/ast_module.cpp:
3932         * TAO_IDL/ast/ast_operation.cpp:
3933         * TAO_IDL/ast/ast_predefined_type.cpp:
3934         * TAO_IDL/ast/ast_recursive.cpp:
3935         * TAO_IDL/ast/ast_redef.cpp:
3936         * TAO_IDL/ast/ast_root.cpp:
3937         * TAO_IDL/ast/ast_sequence.cpp:
3938         * TAO_IDL/ast/ast_string.cpp:
3939         * TAO_IDL/ast/ast_structure.cpp:
3940         * TAO_IDL/ast/ast_type.cpp:
3941         * TAO_IDL/ast/ast_union.cpp:
3942         * TAO_IDL/ast/ast_union_branch.cpp:
3943         * TAO_IDL/ast/ast_union_label.cpp:
3944         * TAO_IDL/be/be_args.cpp:
3945         * TAO_IDL/be/be_constant.cpp:
3946         * TAO_IDL/be/be_generator.cpp:
3947         * TAO_IDL/be/be_init.cpp:
3948         * TAO_IDL/be/be_produce.cpp:
3949         * TAO_IDL/be_include/be.h:
3950         * TAO_IDL/be_include/be_generator.h:
3951         * TAO_IDL/driver/drv_args.cpp:
3952         * TAO_IDL/driver/drv_fork.cpp:
3953         * TAO_IDL/driver/drv_init.cpp:
3954         * TAO_IDL/driver/drv_main.cpp:
3955         * TAO_IDL/driver/drv_preproc.cpp:
3956         * TAO_IDL/driver/drv_private.cpp:
3957         * TAO_IDL/fe/fe_declarator.cpp:
3958         * TAO_IDL/fe/fe_extern.cpp:
3959         * TAO_IDL/fe/fe_init.cpp:
3960         * TAO_IDL/fe/fe_interface_header.cpp:
3961         * TAO_IDL/fe/fe_private.cpp:
3962         * TAO_IDL/fe/lex.yy.cpp:
3963         * TAO_IDL/fe/y.tab.cpp:
3964         * TAO_IDL/include/ast.h:
3965         * TAO_IDL/include/ast_argument.h:
3966         * TAO_IDL/include/ast_array.h:
3967         * TAO_IDL/include/ast_attribute.h:
3968         * TAO_IDL/include/ast_concrete_type.h:
3969         * TAO_IDL/include/ast_constant.h:
3970         * TAO_IDL/include/ast_decl.h:
3971         * TAO_IDL/include/ast_enum.h:
3972         * TAO_IDL/include/ast_enum_val.h:
3973         * TAO_IDL/include/ast_exception.h:
3974         * TAO_IDL/include/ast_expression.h:
3975         * TAO_IDL/include/ast_extern.h:
3976         * TAO_IDL/include/ast_field.h:
3977         * TAO_IDL/include/ast_generator.h:
3978         * TAO_IDL/include/ast_interface.h:
3979         * TAO_IDL/include/ast_interface_fwd.h:
3980         * TAO_IDL/include/ast_module.h:
3981         * TAO_IDL/include/ast_operation.h:
3982         * TAO_IDL/include/ast_predefined_type.h:
3983         * TAO_IDL/include/ast_root.h:
3984         * TAO_IDL/include/ast_sequence.h:
3985         * TAO_IDL/include/ast_string.h:
3986         * TAO_IDL/include/ast_structure.h:
3987         * TAO_IDL/include/ast_type.h:
3988         * TAO_IDL/include/ast_typedef.h:
3989         * TAO_IDL/include/ast_union.h:
3990         * TAO_IDL/include/ast_union_branch.h:
3991         * TAO_IDL/include/ast_union_label.h:
3992         * TAO_IDL/include/be_extern.h:
3993         * TAO_IDL/include/drv_extern.h:
3994         * TAO_IDL/include/drv_private.h:
3995         * TAO_IDL/include/fe_declarator.h:
3996         * TAO_IDL/include/fe_extern.h:
3997         * TAO_IDL/include/fe_interface_header.h:
3998         * TAO_IDL/include/fe_private.h:
3999         * TAO_IDL/include/global_extern.h:
4000         * TAO_IDL/include/idl.h:
4001         * TAO_IDL/include/idl_bool.h:
4002         * TAO_IDL/include/idl_defines.h:
4003         * TAO_IDL/include/idl_extern.h:
4004         * TAO_IDL/include/idl_fwd.h:
4005         * TAO_IDL/include/idl_global.h:
4006         * TAO_IDL/include/idl_narrow.h:
4007         * TAO_IDL/include/intlmacros.h:
4008         * TAO_IDL/include/nr_extern.h:
4009         * TAO_IDL/include/util.h:
4010         * TAO_IDL/include/utl_decllist.h:
4011         * TAO_IDL/include/utl_error.h:
4012         * TAO_IDL/include/utl_exceptlist.h:
4013         * TAO_IDL/include/utl_exprlist.h:
4014         * TAO_IDL/include/utl_identifier.h:
4015         * TAO_IDL/include/utl_idlist.h:
4016         * TAO_IDL/include/utl_indenter.h:
4017         * TAO_IDL/include/utl_labellist.h:
4018         * TAO_IDL/include/utl_list.h:
4019         * TAO_IDL/include/utl_namelist.h:
4020         * TAO_IDL/include/utl_scope.h:
4021         * TAO_IDL/include/utl_scoped_name.h:
4022         * TAO_IDL/include/utl_stack.h:
4023         * TAO_IDL/include/utl_string.h:
4024         * TAO_IDL/include/utl_strlist.h:
4025         * TAO_IDL/include/utl_tmpl/utl_decllist.h:
4026         * TAO_IDL/include/utl_tmpl/utl_exceptlist.h:
4027         * TAO_IDL/include/utl_tmpl/utl_exprlist.h:
4028         * TAO_IDL/include/utl_tmpl/utl_idlist.h:
4029         * TAO_IDL/include/utl_tmpl/utl_labellist.h:
4030         * TAO_IDL/include/utl_tmpl/utl_list.h:
4031         * TAO_IDL/include/utl_tmpl/utl_namelist.h:
4032         * TAO_IDL/include/utl_tmpl/utl_strlist.h:
4033         * TAO_IDL/narrow/narrow.cpp:
4034         * TAO_IDL/util/utl_decllist.cpp:
4035         * TAO_IDL/util/utl_error.cpp:
4036         * TAO_IDL/util/utl_exceptlist.cpp:
4037         * TAO_IDL/util/utl_exprlist.cpp:
4038         * TAO_IDL/util/utl_global.cpp:
4039         * TAO_IDL/util/utl_identifier.cpp:
4040         * TAO_IDL/util/utl_idlist.cpp:
4041         * TAO_IDL/util/utl_indenter.cpp:
4042         * TAO_IDL/util/utl_labellist.cpp:
4043         * TAO_IDL/util/utl_list.cpp:
4044         * TAO_IDL/util/utl_namelist.cpp:
4045         * TAO_IDL/util/utl_scope.cpp:
4046         * TAO_IDL/util/utl_stack.cpp:
4047         * TAO_IDL/util/utl_string.cpp:
4048         * TAO_IDL/util/utl_strlist.cpp:
4049         * TAO_IDL/util/utl_tmpl/utl_decllist.cpp:
4050         * TAO_IDL/util/utl_tmpl/utl_exceptlist.cpp:
4051         * TAO_IDL/util/utl_tmpl/utl_exprlist.cpp:
4052         * TAO_IDL/util/utl_tmpl/utl_idlist.cpp:
4053         * TAO_IDL/util/utl_tmpl/utl_labellist.cpp:
4054         * TAO_IDL/util/utl_tmpl/utl_list.cpp:
4055         * TAO_IDL/util/utl_tmpl/utl_namelist.cpp:
4056         * TAO_IDL/util/utl_tmpl/utl_strlist.cpp:
4057           Removed a *big* number of warnings, in an attempt to surface
4058           real problems. The main one was "#pragma ident" and some unused
4059           variables.
4061 Sat Oct 25 06:22:03 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
4063         * TAO_IDL/fe/idl.yy: I got errors parsing the idl.yy thru
4064         bison. There were errors indicating "type clash on default action".
4066         This had to do with the fact that the non-terminal "type_dcl" did not
4067         have any type defined for it, but it had "struct_type", "union_type"
4068         and others on the right-hand side of the rules. The default action of
4069         YACC is supposed to assign1 to. So the type for "struct_type"
4070         that happened to be a AST_Decl node was getting assigned to the
4071         non-terminal "type_dcl" who had no type.
4073         I am very surprised that the "yacc" on our Sparcs never ever gave this
4074         error, but bison did.
4076         Hence I have modified idl.yy slightly so that I have {$$ = 0;} as the
4077         default action. In addition, the non-terminal "type_dcl" is now
4078         defined to be of type "ival" which is defined as long inside the
4079         %union clause.
4081         Above all, the bison generated files required some prototypes. So I
4082         had to add the following to idl.yy in the declarations section.
4084         int yylex (void);
4085         void yyerror (char *);
4086         extern "C" yywrap (void);
4088         Somehow, this yywrap had to be under extern "C". I don't know why the
4089         others need not be under extern "C".
4092 Sat Oct 25 00:05:05 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
4094         * TAO version 0.0.15, released Sat Oct 25 00:05:05 1997.
4096 Sat Oct 25 02:46:05 1997  Sergio Flores  <sergio@macarena.cs.wustl.edu>
4098         * TAO_IDL/fe/Makefile:
4099         Changed the YACC variable to use the bison compiler.
4100         Added "-y" to YFLAGS to make bison generate output files like yacc.
4101         Changed the LEX variable to use the flex parser instead of lex.
4102         These programs generate code that has less warnings and is better
4103         code in general.
4104         Added "-D_REENTRANT" to CPPFLAGS, to be able to eliminate the warnings
4105         in lex.yy.cpp.  This could also be fixed if we include "ace/ACE.h" at
4106         the beginning of lex.yy.cpp, but this file is generated with flex.
4108         * TAO_IDL/fe/idl.yy:
4109         Added ACE_UNUSED_ARG macro to avoid unused variable warning,
4110         for variable "AST_Decl *v".
4112         * TAO_IDL/fe/idl.ll (idl_atof):
4113         Added ACE_UNUSED_ARG macro to avoid unused variable warning,
4114         for variable f and h.
4116         * TAO_IDL/include/idl.h:
4117         Added include file "ace/ACE.h".  This was necessary to eliminate
4118         warnings of implicit declarations, which were because the _REENTRANT
4119         flag was not defined.
4121         * TAO_IDL/ast/ast_operation.cpp (AST_Operation):
4122         Reordered member initializers to match declaration order to
4123         eliminate warnings from the compiler.
4125         * TAO_IDL/ast/ast_operation.cpp (fe_add_exceptions):
4126         Added ACE_UNUSED_ARG macro to avoid unused variable warning,
4127         for variable fs.
4129         * TAO_IDL/ast/ast_interface.cpp (AST_Interface):
4130         Reordered member initializers to match declaration order to
4131         eliminate warnings from the compiler.
4133         * TAO_IDL/ast/ast_expression.cpp (operator==):
4134         * TAO_IDL/ast/ast_expression.cpp (coerce):
4135         * TAO_IDL/ast/ast_expression.cpp (coerce_value):
4136         * TAO_IDL/ast/ast_expression.cpp (compare):
4137         * TAO_IDL/ast/ast_expression.cpp (dump_expr_val):
4138         Added case statements to handle the rest of un-handled
4139         enumerations from AST_Expression::ExprType.  These will
4140         handle a default value (i.e. the same case as
4141         AST_Expression::EV_none).  Enumerations added are:
4142         AST_Expression::EV_wstring
4143         AST_Expression::EV_wchar
4144         AST_Expression::EV_longdouble
4145         AST_Expression::EV_ulonglong
4146         AST_Expression::EV_longlong
4148         * TAO_IDL/ast/ast_expression.cpp (AST_Expression):
4149         Reordered member initializers to match declaration order to
4150         eliminate warnings from the compiler.
4152         * TAO_IDL/ast/ast_decl.cpp (AST_Decl):
4153         Reordered member initializers to match declaration order to
4154         eliminate warnings from the compiler.
4155         Also, use 0 instead of NULL to initialize pointers in the
4156         member initialization list, again to avoid ANSI C++ forbids
4157         implicit (void *) conversions warnings.
4159         * TAO_IDL/ast/ast_array.cpp (dump):
4160         Added "unsigned" to index variable "i" used in for() loop,
4161         to avoid warning "comparison between unsigned and signed"
4163         * TAO_IDL/ast/ast_array.cpp (compute_dims):
4164         Added "unsigned" to index variable "i" used in for() loop,
4165         to avoid warning "comparison between unsigned and signed"
4167         * TAO_IDL/ast/ast_array.cpp (AST_Array):
4168         Reordered member initializers to match declaration order to
4169         eliminate warnings from the compiler.
4171         * TAO_IDL/fe/fe_declarator.cpp (FE_Declarator):
4172         Reordered member initializers to match declaration order to
4173         eliminate warnings from the compiler.
4175         * TAO_IDL/driver/drv_main.cpp (DRV_drive):
4176         Added ACE_UNUSED_ARG macro to avoid unused variable warning.
4178         * TAO_IDL/ast/ast_recursive.cpp (AST_illegal_recursive_type):
4179         Initialized pointer variables to avoid warnings.
4181 Fri Oct 24 19:18:22 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
4183         * tao: Changed remaining uses of BOA to POA.
4185         * cubit_i.cpp (please_exit): Replaced the call to
4186         please_shutdown() on the POA (which no longer exists) with the
4187         shutdown() call on the ORB.
4189         * tests/IDL_Cubit/svr.cpp: Removed
4191         oa_ptr->clean_shutdown (env);
4193         since this is no longer supported in TAO's POA.
4195         * tao/poa.h: Changed the get_boa() method to get_poa().  Even this
4196         will probably go away soon.
4198 Fri Oct 24 18:25:00 1997  Aniruddha Gokhale  <gokhale@flamenco.cs.wustl.edu>
4200         * TAO/tao/svrrqst.cpp: Method params was allocating memory even
4201         when the Any's already had memory allocated for the IN and INOUT
4202         parameters. Due to this the params would retrieve results in the
4203         allocated storage whereas the stubs/skeletons would continue to
4204         use variables that they had defined to hold the values.
4206 Fri Oct 24 17:33:21 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
4208         * tao/poa.*: #ifdef'd out the IIOP 1.4 references to shutdown.
4209         I'm leaving them in there right now because they might be useful
4210         as private member later when we need to figure out how to get OAs
4211         to cooperate and shut themselves down in the face of an ORB
4212         shutdown.
4214         * tao/orbobj.h (shutdown): Fixed up documentation.
4216         * tao/orbobj.i (shutdown): Provided appropriate arg default.
4218         * tests/Cubit/TAO/svr.cpp: Eliminated unnecessary Object Adapter
4219         name from POA_init() invocation.
4221         * tests/Cubit/TAO/cubit_i.cpp (Cubit_please_exit): Revised to use
4222         the new ORB::shutdown() method.
4224         * tests/Cubit/TAO/clnt.cpp: Got rid of IIOP 1.4-style debug
4225         message calls.
4227         * tao/orbobj.cpp (CORBA_ORB::ORB_init): Corrected a heinous
4228         problem in the option parsing loop where argvec_shift() would be
4229         asked to shift two argv elements when there was only one.  This
4230         could cause problems if an option that required an argument didn't
4231         include the argument.  Thanks to Manojkumar Acharya
4232         <cvsf325.gpt.co.uk> for sending in a bug report that lead to my
4233         finding this!
4235 Fri Oct 24 14:08:12  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
4237         * Improved the compiler to make Unions work. The most subtle error
4238         was the way the private section of the class for unions was being
4239         generated. TAO's Typecode library expected the union members to be
4240         inside of a C++  union declaration inside the private
4241         section. Whereas the compiler was generating each member
4242         separately.
4244         Another source of error was bad typecode tables getting
4245         generated. This is now fixed.
4247         * TAO/tests/IDL_Cubit: The cubit_i.cpp for cube_union was doing
4248         wrong calculations for structs. This was due to my copy-paste
4249         tendency and not verifying if it was correct or not. This has been
4250         fixed. The README file is updated to reflect the fact that this
4251         directory contains code that uses the IDL compiler.
4253 Fri Oct 24 01:54:00 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
4255         * TAO version 0.0.14, released Fri Oct 24 01:54:00 1997.
4257 Fri Oct 24 01:02:01 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
4259         * clnt.cpp: Removed mysterious obsolete definitions of
4260         cube_union_stub() and cube_union_dii().
4262         * be_state.h: Added definitions for the methods in class
4263         be_state_attribute.  For some reason, they were missing.
4265         * TAO_IDL/be/be_state.cpp: Added the necessary template
4266         specializations so that the TAO IDL compiler will work with GCC.
4268 Thu Oct 23 22:46:10 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
4270         * TAO IDL Compiler: More progress in terms of getting the Cubit
4271         example to work with the IDL generated code. However, we are still
4272         finding some problems with using the client-side cubit_union_dii
4273         to work properly.
4275         Much of the improvements were to the server-side skeletons for
4276         operations. In addition, code for union constructors, assignment
4277         operator, and accessor for discriminant added.
4279         Some bugs in typecode generation are fixed. This had to do with
4280         the encapsulation length for predefined types. It was returning -1
4281         as opposed to 0.
4283         * TAO/tests/IDL_Cubit: Added this directory with the cubit
4284         example. Use this to test the IDL compiler. The makefile will
4285         invoke the IDL compiler to create the required files.
4287 Thu Oct 23 18:34:02 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
4289         * tests/*/Makefile: Fixed the Makefiles so that it has the correct
4290         files and dependencies.  Thanks to Steven Wohlever
4291         <wohlever@mitre.org> for reporting this.
4293 Wed Oct 22 20:02:39 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
4295         * README.sun: Added an explicit reminder at the top that the
4296         information in this file is historical in nature and does not
4297         necessarily apply to current reality.
4299         * tao/orbobj.* (shutdown): Added code to the run() event loop so
4300         that it will terminate when it finds a flag set.  This involved
4301         adding the flag to the ORB's state and minimally implementing the
4302         shutdown() method.  The shutdown method still does not honor the
4303         "wait for completion" flag which can be passed to it, though.
4305         * README: Updated the season from "summer" to "Fall" ;-) Also
4306         added a note that warned people not to try to link TAO with a
4307         version of ACE that's linked with another ORB library, e.g.,
4308         liborbix.so.  Thanks to Steven Wohlever <wohlever@mitre.org> for
4309         bringing this instructional omission to our attention.
4311         * tao/tao_internals.cpp (fake_service_entries_i): Made the body of
4312         this function conditional on the TAO_PLATFORM_SVC_CONF_FILE_NOTSUP
4313         preprocessor definition since it doesn't need to exist in
4314         platforms that grok the Service Configurator.  This will also
4315         reduce the memory footprint :-).  Thanks to David Miron
4316         <dxm@crapper.dsto.defence.gov.au> for pointing this out!
4318         * tao/orb_core.cpp (TAO_ORB_Core): Removed explicit CTOR
4319         initialization of reactor_ member.
4321 Wed Oct 22 19:37:22 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
4323         * TAO IDL Compiler: Improvements made so that the server-side
4324         skeletons for operations now generate valid code. The code
4325         generated for the Cubit.idl was compiling cleanly. It is under
4326         test currently to see if it runs.
4328         * Some progress in handling forward declarations of interfaces.
4330 Wed Oct 22 12:55:19 1997    <nw1@CHA-CHA>
4332         * tao/poa.h:  Added ACE_Svc_Export to class CORBA_POA.
4334         * tao/TAO.{mdp,mak}:  Updated files in project file.
4336         * tao/TAO.dsp: Removed boa, Orb_Core and added poa, orb_core to
4337           the project file.
4339 Tue Oct 21 17:21:51 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
4341         * docs/releasenotes/orbcore.html: Updated to reflect daily
4342         progress.
4344         * tests/Cubit/TAO/Makefile: Updated dependencies.
4346         * tests/Cubit/TAO/svc.conf: Updated to eliminate empty quotes at
4347         the end that tickled a deficiency in the Service Configurator's
4348         grammar.
4350         * tests/multiCubit/svr.cpp: Updated to reflect POA_init change.
4352         * tests/Thruput_test/Makefile: Modified to reflect filename
4353         changes.
4355         * tests/Thruput_test/server.cpp: Changed type of argv so that it
4356         matched properly.
4358         * tao/boa.*: Renamed to tao/poa.*.
4360         * tao/Orb_Core.*: Renamed to tao/orb_core.*.
4362         * tao/{Makefile,corba.h,default_client.cpp,default_server.cpp,orb.h,orbobj.cpp,params.h}:
4363         Modified to reflect filename changes.
4365 Tue Oct 21 13:23:48 1997 Brian Mendel  <brian.r.mendel@boeing.com>
4367         * tao/connect.i: Moved hash_i and compare_i template
4368           specialization to Orb_Core.i.  Original code was left comment
4369           out until this mod is checked on all platforms.
4371         * tao/Orb_Core.i: Added hash_i and compare_i code from connect.i.
4373 Tue Oct 21 03:23:29 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
4375         * tao/Orb_Core.cpp: Removed conditional inclusion of Orb_Core.i
4376           since, according to corba.h, it is always included as an inline
4377           function file.
4379 Tue Oct 21 02:24:14 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
4381         * TAO version 0.0.13, released Tue Oct 21 02:24:14 1997.
4383 Mon Oct 20 23:42:48 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
4385         * TAO/boa: Changed BOA_init() to POA_init() to be
4386           more consistent...
4388         * TAO_IDL/be/be_interface.cpp,
4389           tests/TAO/Thruput_test/server.cpp,
4390           tests/TAO/Thruput_test/ttcpS.cpp,
4391           tests/TAO/RT_test/Task_Client.cpp,
4392           tests/TAO/RT_test/cubit_impl.cpp,
4393           tests/TAO/multiCubit/cubitS.cpp,
4394           tests/TAO/multiCubit/svr.cpp,
4395           tests/TAO/Demux_Test/server.cpp,
4396           tests/TAO/Demux_Test/CodeGen/skel.cpp,
4397           tests/TAO/MT-Cubit/client/Task_Client.cpp,
4398           tests/TAO/MT-Cubit/server/cubitS.cpp,
4399           tests/TAO/MT-Cubit/server/svr.cpp,
4400           tests/TAO/cubitS.cpp,
4401           tests/TAO/svr.cpp,
4402           tests/TAO/test1_svr.cpp: Changed BOA to POA to reflect the
4403           new naming conventions.
4405         * tao/stub.i (STUB_Object): Removed a stray default value from the
4406         STUB_Object constructor...  Thanks to Carlos for noticing this.
4408 MOn Oct 20 10:14:09 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
4410         * Improved version of the TAO IDL compiler. The executable has
4411         been renamed to tao_idl. There are a number of improvements as
4412         well as shortcomings. These are explained in the
4413         docs/releasenotes/index.html page, which can be viewed online at
4414         http://www.cs.wustl.edu/~schmidt/ACE_wrappers/TAO/docs/releasenotes/.
4416 Mon Oct 20 16:30:29 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
4418         * tao/tao_internals.cpp (fake_service_entries_i): Based the
4419         arguments to the faked server service entry for VxWorks on the
4420         TAO_HAS_TSS_ORBCORE compilation flag.  This should hopefully
4421         eliminate the problems Boeing was seeing in the early rounds of
4422         testing the most recent release of TAO.
4424         * tao/{iiopobj.*,giop.h}: Moved a lock that had been in
4425         TAO_GIOP_Invocation (why?  I don't know) into IIOP_Object.  It
4426         protects the fwd_profile_ pointer, which has now become private.
4427         Also added accessors for the data member as well as the lock.
4428         Accessors come in two flavors--thead-safe (fwd_profile()) and
4429         non-thread-safe (fwd_profile_i()).  The non-thread-safe variety
4430         expect that the lock will be taken and held for the duration of
4431         their usage, but no checking is performed in this respect.
4433         * tao/giop.cpp: Changed references to the IIOP_Object::fwd_profile
4434         data member to go through the new accessors (see above).
4436         * tao/stub.i: Created new file with inline methods for
4437         STUB_Object.
4439         * tao/stub.h: Moved inline method definitions into a new
4440         file--stub.i.
4442         * tao/orbobj.cpp (BOA_init): Eliminated dead code and unused
4443         variable.
4445         * tao/except.cpp (print_exception): Eliminated unused argument
4446         warning detected by gcc.
4448         * tao/corba.h: Re-ordered inclusion of Orb_Core.i to eliminate
4449         'function used before declared inline' errors detected by gcc.
4451         * tao/{Orb_Core,boa,corbacom,orb,orbobj,svrrqst}.*: Renamed BOA to
4452         POA.
4454         * docs/releasenotes*: Moved releasenotes.html into a directory
4455         named "releasenotes" so that the various status pages can live
4456         independently.  Currently only the ORB Core's status page is
4457         broken out, but the documentation should eventually turn into two
4458         frames with the one at the top acting as the guide and the lower
4459         frame being the actual status document.
4461 Fri Oct 17 17:42:27 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
4463         * docs/releasenotes.html: Updated to reflect current status.
4465         * tao/orbobj.*: Added some documentation for open() method.
4467         * tao/roa.*: Gone.  Bye-bye.  Removed.
4469 Fri Oct 17 15:43:04 1997    <nw1@CHA-CHA>
4471         * tao/connect.h: Added template instantiation supression directive
4472           for Win32.  VC was complaining about duplicate symbols definition.
4474 Fri Oct 17 06:25:23 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
4476         * tao/{boa,roa}.*: Merged class ROA into class
4477         CORBA_BOA. Hopefully everything still works ;-)
4479         * docs/releasenotes.html: Quick update for new TODO list.  Will be
4480         updated within the next day or so with dates, too.
4482         * tao/{server_factory,orbobj,Orb_Core}.cpp: Corrected incorrect
4483         explicit template instantiations and added missing ones.
4485 Thu Oct 16 23:48:04 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
4487         * TAO version 0.0.12, released Thu Oct 16 23:48:04 1997.
4489 Thu Oct 16 11:15:00 1997  Brian R. Mendel <brian.r.mendel@boeing.com>
4491         * tao/server_factory.cpp: Added instantiation pragma for VxWorks for
4492           ACE_Acceptor.  Added the template to the specialization section, also.
4494         * tao/orbobj.cpp: Added instantiation pragma for VxWorks for
4495           ACE_Cached_Connect_Strategy and ACE_Hash_Map_Manager for
4496           ACE_Null_Mutex instantiations.  Also, added these to the template
4497           specialization sections.
4499         * tests/Cubit/Build/default.bld: Added TAO_PLATFORM_SVC_CONF_FILE_NOTSUP
4500           to defines section of GHS build file.
4502 Tue Oct 14 21:11:20 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
4504         * tao/xdr.h: Changed int _fd to ACE_HANDLE _fd to work on NT.
4505           Thanks to Satheesh Kumar <satheesh@aspectdv.com> for reporting
4506           this.
4508 Tue Oct 14 02:48:21 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
4510         * TAO version 0.0.11, released Tue Oct 14 02:48:21 1997.
4512 Mon Oct 13 23:30:16 1997    <irfan@TWOSTEP>
4514         * tao/connect.h: If we are using TSS, there is no reason to use
4515           locking in the connector. Therefore, I added a new typedef that
4516           defines the type of lock that should be used for the
4517           cached_connect_strategy.  It is ACE_SYNCH_RW_MUTEX in the
4518           non-TSS case, and ACE_SYNCH_NULL_MUTEX in the TSS case.
4520 Mon Oct 13 21:34:00 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
4522         * tao/svrrqst.cpp (oa): Cleaned up the coding style a bit.
4524 Sun Oct 12 15:38:35 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
4526         * tao/client_factory: Gutted the client factory code related to
4527           the Strategy_Connector so that it's either in the TAO_Orb_Core.
4529         * tao/default_client.h: Removed the connector() from the
4530           Default_Client_Factory entirely since it's all been put into the
4531           TAO_ORB_Core now.
4533         * tao/giop.cpp (start): Hacked up the code so that we extract our
4534           connector from thread-specific storage if we're using the
4535           thread-per-rate concurrency model.  This needs to be integrated
4536           more cleverly in the ORB.
4538         * tao/orbobj.h: Put an instance of the TAO_CONNECTOR into each
4539           TAO_ORB_Core object so that we don't have to share these things
4540           among all of the threads in a process, but instead can have them
4541           be located in thread-specific storage.
4543         * tao/orbobj.cpp (perform_work): Updated the run() and
4544           perform_work() methods to take optional ACE_Time_Value *'s (so
4545           they can return from timeouts) and to return error flags if
4546           things go wrong.
4548         * tao/orbobj.h (CORBA_ORB): Changed the set_up_for_listening()
4549           call to open(), which is more consistent with other usage in
4550           ACE/TAO.
4552         * tao/orbobj: Changed the name client_acceptor_ to peer_acceptor_
4553           to reflect the fact that the connection model is more generic
4554           than the notion of client/server interactions (which really take
4555           place as the result of particular communication roles).
4557         * tao/corba.h: Moved the order of #includes around so that
4558           "connect.h" is included before "client_factory.h"
4560         * tao/connect.h: Moved the typedef of the ACE_Strategy_Connector<>
4561           from the TAO_Client_Strategy_Factory into the global space and
4562           renamed it TAO_CONNECTOR file so that it will be equivalent with
4563           the TAO_ACCEPTOR.
4565 Thu Oct  9 23:17:37 1997  Douglas C. Schmidt  <schmidt@merengue.cs.wustl.edu>
4567         * tao/giop.cpp (invoke): If an error occurs, make sure to mark the
4568           handler_ as no longer being in use before we set it to 0.
4570         * tao/giop.cpp (TAO_GIOP_Invocation): We need to make sure that
4571           handler_ isn't 0 before we mark it as no longer being in use.
4573 Thu Oct  9 11:33:46 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
4575         * tao/giop.cpp:
4576           There was a minor sintax error.
4578 Tue Oct 07 09:34:35 1997    <brian.r.mendel@boeing.com>
4580         * tao/Orb_Core.h{cpp}: Added ACE_Svc_Export label to global
4581         TAO_ORB_Core_instance() method.  Needed for DLL support on NT.i
4583         * default.bld, tao.bld: Modified VxWorks build files to add new files.
4585 Tue Oct 07 07:05:38 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
4587         * TAO version 0.0.10, released Tue Oct 07 07:05:38 1997.
4589 Mon Oct 06 22:11:40 1997    <nw1@CHA-CHA>
4591         * tests/Cubit/TAO/cubit_i.cpp (Cubit_please_exit):
4592         * tests/Cubit/TAO/cubitS.cpp (_skel_Cubit): Changed to use the new
4593           TAO_ORB_CORE_instance () global function.
4595 Mon Oct  6 20:06:05 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
4597         * tao/{boa.h,connect.cpp,giop.cpp,giop.h,roa.cpp,roa.h}:
4598         Eliminated unused methods and code.
4600         * tao/Orb_Core.*: Created new global function called
4601         TAO_ORB_Core_instance() which will return the correct instance of
4602         the ORB Core state.  This had previously been accessed using
4603         TAO_ORB_CORE::instance(), but Win32s linking procedures made the
4604         template for TAO_ORB_CORE expand in both the application and the
4605         library/DLL, thus creating two singletons.  Bad scene.  The
4606         function should force the expansion of the template to only be in
4607         the DLL.
4609         * tao/{connect,default_client,default_server,orbobj,roa}.cpp:
4610         Changed references to TAO_ORB_CORE::instance() to
4611         TAO_ORB_Core_instance().
4613         * tao/singletons.h: Removed definition of TAO_ORB_CORE.
4615 Sat Oct  4 20:08:57 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
4617         * tao/TAO.{dsp,dsw}: Added tao_internals.cpp into project file
4618           list.
4620         * tao/tao_internals.h (TAO_Internal): Added ACE_Svc_Export and
4621           I d.
4623         * tao/tao_internals.i (open_services): Added default return value
4624           0.
4626         * tao/tao_internals.cpp: Added #include "tao/tao_internals.h" and
4627           the CVS I d field.  Also, we should include inline (.i) file
4628           for inline code.
4630 Fri Oct  3 09:29:05 1997  Chris Cleeland  <cleeland@merengue.cs.wustl.edu>
4632         * tests/multiCubit/svr.cpp: Changed the key naming scheme back to
4633         not be unique throughout the process.  Process-unique code is
4634         still there, but conditionally compiled mutually-exclusive to the
4635         other scheme.
4637         * tao/server_factory.*: The object_lookup_strategy method is gone
4638         and is replaced by the create_object_table factor method.  See
4639         more information below.
4641         * tao/default_server.*: The server factory no longer holds on to a
4642         single pointer for the object lookup strategy.  In previous
4643         incarnations of TAO, this didn't cause problems, but the advent of
4644         ORB-per-thread highlighted the inherent badness in this
4645         implementation choice.  Gone is the object_lookup_strategy method,
4646         and in comes the create_object_table factory method, which creates
4647         and returns (and doesn't hold onto) an object table in accordance
4648         with parameters such as size and search algorithm.
4650         * tao/roa.cpp: Changed to use the create_object_table method.
4652 Thu Oct  2 13:48:31 1997  Chris Cleeland  <cleeland@merengue.cs.wustl.edu>
4654         * tests/multiCubit/svr.cpp: Modified the key generation scheme to
4655         include thread ID.  This works around a current shortcoming in the
4656         ORB Core in which the object table is shared throughout all object
4657         adapters (yes, this is being fixed).
4659         * tao/tao_internals.*: Added new class to scope static operations
4660         and data completely internal to the ORB.
4662         * tao/orbobj.{i,cpp}: Moved CORBA_ORB DTOR into cpp file.  Finally
4663         got rid of icky static mutex in ORB_init().  Moved service config
4664         initialization into TAO_Internal method.
4666         * tao/Orb_Core.h: Added comments.
4668 Wed Oct  1 12:51:48 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
4670         * tao/corbacom.h: Removed CORBA:: name resolution from the class
4671           String_out which is itself defined in class CORBA.  MSVC doesn't
4672           like that.
4674 Wed Oct  1 10:44:55 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
4676         * tao/varout.h: Fixed some template errors in class
4677         TAO_Object_out. This was pointed to me by Carlos as he was
4678         compiling TAO in SGI.
4680 Wed Oct  1 09:10:38 1997  Carlos O'Ryan  <coryan@macarena.cs.wustl.edu>
4682         * docs/releasenotes.html:
4683           Updated information on the Event Channel, the use of the Naming
4684           Service is no longer a plan, it is done already.
4686 Tue Sep 30 20:14:29 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
4688         * TAO version 0.0.9, released Tue Sep 30 20:14:29 1997.
4690 Tue Sep 30 19:42:09 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
4692         * Makefile: Removed "docs" from DIRS so we don't try to run
4693         make in this directory.
4695 Tue Sep 30 17:27:00 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
4697         * <RELEASE>: Tagged a release for limited consumption until the
4698         Service Configurator bug is fixed.
4700         * tests/multiCubit/svr.cpp: Added code to properly release CORBA
4701         objects.  Delays between task activations simply aid in debugging
4702         and are not necessary.
4704         * tao/singletons.h: Made TAO_ORB_Core's singleton type
4705         compile-time selectable via the TAO_HAS_TSS_ORBCORE compiler flag.
4707         * tao/orbobj.cpp: Corrected an incorrect shift count, and the ORB
4708         Core now defaults to using the host name of the local host.
4710         * tao/Orb_Core.[hi]: Added explicit CTOR.
4712         * tao/Orb_Core.cpp: Insured that the correct template type was
4713         instantiated.
4715         * tao/Makefile: Added -DTAO_HAS_TSS_ORBCORE to CPPFLAGS.
4717 Tue Sep 30 16:43:12 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
4719         * docs/releasenotes.html: Added some notes on the ORB Core.
4721 Mon Sep 29 14:39:51 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
4723         * docs/{index,components,releasenotes}.html: Added additional
4724         documentation.
4726 Mon Sep 29 13:50:34 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
4728         * TAO ORB changes:
4730         any.*: Added _var and _out classes.
4732         corbacom.{h,i} : Added _out types for primitive types, added _out and
4733         updated _var classes for String. Added corbacom.i for implementing
4734         the String's _var and _out classes
4736         sequence.{h,i}: Added a number of templates for _var and _out
4737         classes. However, these are yet to be used and tested.
4739         * Alpha release of TAO IDL compiler added to this release. This is
4740         an alpha release and we are currently putting it to rigorous
4741         test. A large amount of code for the back end is added under the
4742         TAO/TAO_IDL/be_include and TAO/TAO_IDL/be/ directories.
4744         In addition, some amount of ACEification done to methods belonging
4745         to the TAO/TAO_IDL/utils/ classes.
4747         A few errors in the IDL grammar have been fixed in
4748         fe/idl.yy. These had to do with the valid types for parameters and
4749         operation return types. There are still some errors recognizing
4750         unions which will be fixed later. The scanner (fe/idl.l) was
4751         modified to recognize the OMG IDL data type "any".
4753         * The ChangeLog file under TAO/TAO_IDL is removed and its contents
4754         are inserted appropriately in this ChangeLog file
4756 Sun Sep 28 17:01:27 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
4758         * tests/multiCubit: Added a multi-threaded version of Cubit.
4760         * tao/orbobj.cpp: At long last, Andy has his wish for not having
4761         to provide a "-ORBhost <me>" argument to a server.  It now uses
4762         ACE_OS::hostname() to determine the canonical hostname, and
4763         listens on that address.
4765         * tao/singletons.h: Changed the ORB Core singleton to be a TSS
4766         singleton; this will eventually be conditionally compiled in
4767         (before release).  Also added comments and "safety defines".
4769         * tao/except.cpp: Changed some usage of fputs() in
4770         print_exception() to use ACE_DEBUG.
4772 Sun Sep 28 03:18:24 1997  Nanbor Wang  <nw1@cumbia.cs.wustl.edu>
4774         * tests/Cubit/TAO/cubitC.h (Object): Changed references of base
4775           class from "CORBA::Object" to "CORBA_Object."  MSVC doesn't
4776           allow this.
4778         * tao/Orb_Core.h: Added ACE_Svc_Export to TAO_Orb_Core class.
4780         * tao/corbacom.h: Added ACE_Svc_Export to all IID constants.
4781           Notice that we must put ACE_Svc_Export _after_ extern "C".
4783 Sat Sep 27 09:31:42 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
4785         * tao/Orb_Core.h: Fixed the friend declaration for
4786         CORBA::ORB_init().
4788         * tests/Cubit/TAO/svr.cpp: Modified to use ORB::run() for event
4789         loop and eliminated code cruft.
4791         * tao/orbobj.*: Added stubs for 4 methods on the ORB from the
4792         POA spec: work_pending, perform_work, run, and shutdown.  Of all
4793         of these, only run is reasonably implemented, and there not even
4794         according to the spec (because the way the spec works isn't really
4795         good for our purposes...need to work on that).  See the docs for
4796         information.
4798         Moved the initialization of the Acceptor into its own method,
4799         set_up_for_listening (which is a one-shot style method), and
4800         placed a call to this within the aforementioned run method.
4802         * tao/default_client.h: Miscellaneous comments added.
4804         * tao/connect.cpp: Corrected an errant ACE_DEBUG () call.
4806         * tao/Orb_Core.*: Added private methods to allow setting of the
4807         orb and extended the laurel of friendship to CORBA::ORB_init().
4809 Fri Sep 26 10:20:06 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
4811         * tao/orbobj.*: Added acceptor initialization code to CORBA_ORB
4812         CTOR.  (We still need to find a way to NOT do this on the client
4813         side.)  Moved CORBA_ORB CTOR into .cpp to avoid nasty
4814         interdependencies caused when it was in the .i file.  Moved the
4815         specification of host and port to be ORB parameters rather than OA
4816         parameters, i.e., -OAhost is now -ORBhost and -OAport is now
4817         -ORBport.
4819         * tao/roa.*: Removed server-side connection endpoint
4820         initialization (Acceptor stuff) and put it into the ORB.
4822         * tao/connect.h: Renamed ROA_Acceptor to TAO_Acceptor (since it's
4823         not related to the OA any longer), and restored explicit inclusion
4824         of ace headers to avoid having to include "corba.h".
4826         * tao/boa.h: Removed unneeded get_addr() method.
4828         * tests/Cubit/TAO/cubitS.cpp: Updates to support changes in ORB
4829         Core.
4831 Thu Sep 25 12:28:02 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
4833         * tao/params.*: Added explicit CTOR & DTOR for
4834         TAO_{OA,ORB}_Parameters classes that somehow got removed in the
4835         previous round of attacks.  Also specified all methods which go
4836         into the .i file as "LOCAL_INLINE" within the header.  This avoids
4837         having to unravel ugly, complex order interdependencies.
4839 Thu Sep 25 03:48:02 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
4841         * docs/Options.html: Terse documentation on options available for
4842         the abstract factories.
4844         * tao/Orb_Core.*: Added this class (TAO_ORB_Core) to hold the
4845         "state" of an ORB.  The intent is that as we move towards
4846         different concurrency models, this can be thrown into
4847         thread-specific storage and remain a singleton, essentially
4848         allowing the running of an ORB-per-thread.
4850         * tao/singletons.h: Added this file to contain type definitions
4851         for *ALL* ACE_Singleton<> types used within TAO.  This was
4852         motivated by a desire to eliminate the multitude of warnings
4853         generated by g++ regarding methods being called before declared
4854         inline, and the only way to eliminate this was to insure that all
4855         inlined methods were seen by the compiler before the
4856         ACE_Singleton<> definition.  Thus, corba.h includes singleton.h as
4857         the very last thing that it does.
4859         * tao/params.*: TAO_OA_Parameters is no longer a singleton, and
4860         because of new recognition of associations in the object model for
4861         an ORB, lots of data members and their methods have been shuffled
4862         to other places or eliminated.  addr() now belongs in
4863         TAO_ORB_Parameters, and root_poa_ is in TAO_ORB_Core.  The
4864         using_threads_, thread_flags_, upcall_, and forwarder_ members
4865         have been eliminated and their roles taken over by the Concurrency
4866         Strategies and the new Dispatch call chain implemented in my last
4867         round of changes.
4869         * tao/orbobj.cpp: Changed references to the ORB singleton to go
4870         through TAO_ORB_CORE::instance().  Also eliminated an unnecessary
4871         global function (_orb()).
4873         * tao/marshal.h: Moved all ACE_Singleton<> typedefs into
4874         singleton.h.  See comment on tao/corba.h for more information.
4876         * tao/iioporb.h: Removed unnecessary TAO_ORB singleton.  This is
4877         now assumed by TAO_ORB_Core instances.
4879         * tao/corbacom.h: Added CORBA::POA_ptr for upward compatibility.
4881         * tao/corba.h: Added Orb_Core.[hi] to the appropriate places.
4882         Moved iiop{orb,obj}.i inclusions around and moved typedef'ing of
4883         all ACE_Singletons into singletons.h, which must be #included
4884         AFTER all the inline files.  This eliminated all of the
4885         used-before-declared-inline warnings.
4887         * tao/{connect,default_client,default_server,roa}.*: Updated
4888         singleton usages to go through the TAO_ORB_CORE singleton.
4890         * tests/Cubit/TAO/{cubitS,cubit_i}.cpp: Updated singleton usages
4891         to go through the TAO_ORB_CORE singleton.
4893 Wed Sep 17 12:26:56 1997  Nanbor Wang  <nw1@CHA-CHA>
4895         * tao/TAO.dsp: Updated source file list.
4897 Mon Sep 15 16:52:28 1997  Chris Cleeland  <cleeland@merengue.cs.wustl.edu>
4899         * tests/Cubit/TAO/{cubitS,cubit_i}.cpp: Updated references to oa()
4900         to root_pos().
4902         * tao/orbobj.cpp: Corrected some adjustments made for Service
4903         Configurator rework.
4905         * tao/giop.h: Moved the def for TAO_GIOP_EndOfFile out of the
4906         range of valid GIOP messages.
4908         * tao/connect.cpp: Added special case for TAO_GIOP_Reply to break
4909         out, and distinguished TAO_GIOP_EndOfFile from other errors by
4910         setting errno.
4912         * tao/boa.cpp: The complete reply header is now stuck into the
4913         response stream...what a novel concept!
4915 Fri Sep 12 05:40:50 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
4917         * params.h: Renamed oa() method to be root_poa() in preparation
4918         for the future.
4920         * orbobj.cpp: Adjusted the FAKE_SVC_ENTRY macro to catch up to
4921         recent changes in ACE.
4923         * giop.*: Major surgery including elimination of GIOP as a giant
4924         namespace (now only static methods are in it).  Changed names of
4925         things to TAO_*.
4927         * {encode,decode,iiopobj,invoke,roa}.*: Name changes resulting
4928         from giop.cpp surgery.
4930         * corbacom.h: Moved TAO_opaque decl into here.
4932         * corba.h: Re-ordered the inline #includes so that the stuff that
4933         is ALWAYS inlined is included prior to the stuff that's only
4934         inlined when __ACE_INLINE__ is turned on.
4936         * connect.*: Modified handle_input() substantially.  Added 3
4937         template methods: read_message, handle_message, and send_response.
4939         * {cdr,marshal,object,typecode}.h: Removed the old "always include
4940         inlines" hackery.
4942         * boa.*: Added handle_request() method.
4944 Wed Sep 03 06:15:00 1997  Brian Mendel  <brian.r.mendel@boeing.com>
4946         * tao/default_client.cpp:  Added conditional sections around the code for setting the
4947         socket options for VxWorks.  VxWorks does not support a 64K buffer size.
4949 Tue Sep 02 18:32:12 1997  Brian Mendel  <brian.r.mendel@boeing.com>
4951         * tao/orbobj.cpp:  Added include for Service_Repository.h to orbobj.h
4953         * tao/debug.cpp: Removed the TAO_NEEDS_UNUSED_VARIABLES #defines
4954         around the debug_stream declaration.  debug_stream is used by
4955         dmsg_filter in debug.cpp.  Changed SYSTEM_EXCEPTION to
4956         CORBA::SYSTEM_EXCEPTION.
4958         * tao/default_client.cpp: Removed extra parameter from
4959         ACE_Hash_Map_Entry #pragma instantiate statement.
4961         * tao/objtable.cpp: Deleted pragmas for instantiating ACE_Guard,
4962         ACE_Read_Guard, and ACE_Write_Guard to eliminate duplicate
4963         instantiations.  Also, removed the instantiations from
4964         ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION for the same reason.
4966         * tao/orbobj.cpp: Added a typecast to void * in argvec_shift
4967         method.
4969         * tao/default.bld - Modified VxWorks Build File to change template
4970         instantiation modes.
4972         * tao/tao.bld - Added default_client.cpp, default_server.cpp,
4973         client_factory.cpp, and server_factory.cpp to the VxWorks build
4974         file.
4976         * tao/tao.dsp - Added default_client.cpp, default_server.cpp,
4977         client_factory.cpp, and server_factory.cpp to the Win NT project
4978         file.
4980 Tue Sep  2 07:31:45 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
4982         * tao/orbobj.cpp (ORB_init): VxWorks doesn't use
4983         ACE_Service_Config for now; the default factories are used.  The
4984         Service Repository is still used, but the appropriate values are
4985         "stuffed" in manually.
4987 Sat Aug 30 17:07:18 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
4989         * tests/Thruput: First attempt at ACEifying it and removing the
4990         tremendous amount of unnecessary stuff that was in there. This
4991         modified version still needs testing on other platforms.
4993 Fri Aug 29 10:59:34 1997  Chris Cleeland  <cleeland@lambada.cs.wustl.edu>
4995         * tao/Makefile (TAO_ROOT): FINALLY corrected the default
4996         definition of TAO_ROOT.
4998 Thu Aug 28 14:04:44 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
5000         * tao/orbobj.i (CORBA_ORB): Removed assertion that was incorrect
5001         b/c our ORB object is a singleton and not dynamically allocated,
5002         thus the refcount can only reach zero at the end of its life.
5004         * tao/typecode.cpp (TC_Private_State): Relocated the delete of
5005         tc_discriminator_type_ to be after the deletion of the label list.
5006         This is because the discriminator will be inside each of the
5007         CORBA::Any instances within the label list, and deleting it before
5008         deleting the label list results in extreme badness.
5010         * tao/typecode.* (operator delete): Added CORBA_TypeCode::operator
5011         delete() to simplify deletion of both automatically and
5012         dynamically allocated instances of CORBA_TypeCode.  This fixes the
5013         problem of freeing non-heap memory.
5015         * tao/nvlist.h (CORBA_NamedValue): Initialized refcount_ in the
5016         CTOR.
5018 Mon Aug 18 16:39:40 1997  Carlos O'Ryan  <coryan@mambo.cs.wustl.edu>
5020         * Makefile for TAO compiler:
5021          (SOEXT) must be used instead of just .so, the former does not
5022           work on all platforms, notably HP-UX.
5024 Mon Aug 18 16:39:29 1997  Carlos O'Ryan  <coryan@mambo.cs.wustl.edu>
5026         * tao/Makefile:
5027         * tests/Demux_Test/CodeGen/Makefile:
5028          (SOEXT) must be used instead of just .so, the former does not
5029           work on all platforms, notably HP-UX.
5031 Sun Aug 17 16:53:42 1997  Carlos O'Ryan  <coryan@swarm.cs.wustl.edu>
5033         * IIOP/test/Orbeline/client/Profile_Timer.h:
5034         * IIOP/tests/Cubit/VisiBroker/base_server/Profile_Timer.cpp:
5035         * IIOP/tests/Cubit/VisiBroker/base_server/Profile_Timer.h:
5036         * IIOP/tests/Cubit/VisiBroker/client/Profile_Timer.cpp:
5037         * IIOP/tests/Cubit/VisiBroker/client/Profile_Timer.h:
5038         * tests/Cubit/VisiBroker/base_server/Profile_Timer.cpp:
5039         * tests/Cubit/VisiBroker/base_server/Profile_Timer.h:
5040         * tests/Cubit/VisiBroker/client/Profile_Timer.cpp:
5041         * tests/Cubit/VisiBroker/client/Profile_Timer.h:
5042         We no longer use timestruct_t in ACE, it is a SYSVism; we use
5043         timespec_t instead.
5045 Sat Aug 16 01:11:56 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
5047         * tests/Cubit/TAO/svc.conf: Added this as an example of an
5048         application's service config configuration file.  It also serves
5049         as the documentation for various strategy factory options at the
5050         moment.
5052         * tao/orbobj.cpp: Options parsed by the ORB are now
5053         -ORBsvcconf <filename>    specifies the service configurator
5054                                   file to be used
5055         -ORBdaemon                turn this into a daemon
5056         -ORBdebug                 turns debugging on in the service
5057                                   configurator
5059         BOA_init() now sets the itself in the TAO_OA_Parameters singleton.
5061         * tao/orbobj.*: Changed client_factory(), server_factory(), and
5062         params() to return pointers rather than references.
5064         * tao/{roa,giop}.cpp: Updated code that uses the
5065         CORBA::ORB::client_factory() to deal with the fact that it now
5066         returns a pointer rather than a reference.
5068         * tao/default_server.cpp (init): This method now properly
5069         initializes the contained reactive and threaded strategies so that
5070         they're actually usable!
5072         * tao/connect.cpp: Added #endif comments.
5074 Wed Aug 13 17:42:39 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
5076         * tests/Cubit/TAO/*: Converted to the CORBA:: namespace.
5078         * tao/default_server.h: Eliminated a few strategy accessors since
5079         they aren't provided by this implementation.
5081         * tao/default_server.cpp: Made this compile.
5083         * tao/corbacom.h: Slight reformatting of code.  More importantly,
5084         added 'static' to the decl of ORB_init().
5086         * tao/corba.h: Added fake comment to trigger C++ mode.
5088         * tao/any.h: Added #endif comments.
5090 Tue Aug 12 22:37:06 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
5092         * tao/{any,typecode,cdr}.h: Finished appeasing the compiler gods
5093         so that we can remove the ACE_INLINE hack.  Things now seem to be
5094         in order.
5096         * tao/corba.h: Got all the frigging header *.i files #included in
5097         the right order so that the GCC compiler stops complaining.
5099         * tao/giop.cpp: We had method definitions that were defined inline
5100         within the giop.h file.  This was causing problems for GCC, which
5101         kept warning that methods in the cdi.i file were being used before
5102         being inlined.  I've fixed this by creating a giop.i file.
5104         * tao/corba.h: Add #include files should be prefixed by "tao/".
5105         I've fixed this in the release.
5107 Tue Aug 12 16:23:17 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
5109         * tao/any.i: Added a missing replace() method used by overloaded
5110         operators.
5112         * tao/{any,cdr}.h: Added conditional ACE_INLINE before the decl
5113         for a few methods whose usage in other inlined methods appears
5114         prior to their definition.
5116         * tao/default_client.cpp: Eliminated names of unused arguments to
5117         stop the compiler from complaining.
5119         * tao/server_factory.cpp: Properly scoped return type names for
5120         several methods.
5122         * tao/{typecode,decode,deep_copy,debug}.cpp: Bracketed unused
5123         variables with #if defined(TAO_NEEDS_UNUSED_VARIABLES)/#endif;
5124         this leaves them around for right now in case they're important.
5126         * tao/client_factory.i (connector): Properly scoped return type's
5127         name.
5129         * tao/{client_factory,default_client}.cpp: Added necessary
5130         template instantiations.
5132         * tao/{typecode,cdr}.h: Added conditional ACE_INLINE in front of
5133         inlined methods to appease the compiler gods.
5135         * tao/boa.cpp (dispatch): Declared argument unused to get rid of
5136         warnings.
5138         * tao/corbacom.h: Moved #include of sequence.h before the decl for
5139         class CORBA.
5141 Sun Aug 10 10:58:21 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
5143         * tao/client_factory: Moved the template specializations from the
5144         *.cpp file into the *.i file in order to get this stuff to link
5145         without multiply defined symbols.  Thanks to Brian Mendel for
5146         giving me the idea to do this.
5148         * tao/client_factory.cpp: Added a template specialization for
5149         ACE_Hash_Addr.
5151 Sun Aug 10 08:56:20 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
5153         * CORBA_ to CORBA:: transformation complete. All the files in the
5154         TAO/tao distribution have been affected. The most notable changes
5155         are:
5156         (1) A file called "tao/corba.h" is now the master file. All *.cpp
5157         files include *just* this file and nothing else.
5159         (2) "tao/corbacom.h" is the file that defines the CORBA namespace
5160         i.e., class CORBA. Individual CORBA classes such as TypeCode, BOA,
5161         etc are now defined inside the CORBA namespace. This will allow
5162         users and developers to use CORBA::TypeCode as opposed to the
5163         previous CORBA_TypeCode. Instead of nesting the classes, however,
5164         we use typedefs to define individual CORBA classes inside class
5165         CORBA e.g., typedef CORBA_TypeCode TypeCode;
5167         (3) All *.i files are included at the end of "tao/corba.h" and
5168         nowhere else. However, if __ACE_INLINE__ isnot defined, then each
5169         individual *.i file is not yet included in their corresponding
5170         .cpp file. This will be done next.
5172         * TAO/tests/Demux_Test: Included code that tests various
5173         demultiplexing strategies in TAO. At this point, however, the code
5174         will not work because of changes in TAO. This will be done
5175         next. A README file provides additional details.
5177         * TAO/Benchmark: A suite of benchmarking tests have been
5178         included. This is still in the preliminary stages of
5179         development. The idea is to compare various aspects of CORBA such
5180         as marshaling overhead, demux costs, throughput, latency, and
5181         others for a range of ORBs including TAO. Since there are
5182         differences in programming different ORBs, this suite tries to
5183         abstract out all the common features or atleast provide a uniform
5184         interface so that minimal efforts are required to port an
5185         application from one ORB to another.
5187         Benchmark/benchmark: This directory contains thecommon features
5188         Benchmark/Marshal_Test: Tests marshaling overhead in 3 ORBs -
5189         Orbix, VisiBroker, and TAO. More will be added. There are a few
5190         problems getting DSI to work. The tech support at IONA and
5191         VisiBroker have been contacted.
5193 Sat Aug  9 14:05:08 1997  Douglas C. Schmidt  <schmidt@merengue.cs.wustl.edu>
5195         * tao: Continued to clean up all the code so that it is more
5196           consistent with ACE programming style.
5198         * tao/orbconf.h: Cleaned up a lot of the unnecessary #defines.
5200         * tao/default_server.h: Make sure we inherit from
5201           TAO_Server_Strategy_Factory, not TAO_Server_Factory.
5203         * tao/server_factory.cpp: Moved all the inline methods to be
5204           non-inline since this code will always be dynamically bound.
5206         * tao/client_factory.cpp: Cleaned things up a bit.
5208 Sat Aug  9 12:37:05 1997  Brian Mendel  <brian.r.mendel@boeing.com>
5210         * tao/corba.h:  Deleted include for xdr.h from corba.h.  xdr.h
5211         is obsolete.
5213         * tao/objtable.cpp:  Deleted pragmas for instantiating ACE_Guard,
5214         ACE_Read_Guard, and ACE_Write_Guard to eliminate duplicate
5215         instantiations.  The templates are instantiated by ACE.  Can these
5216         templates also be removed from the
5217         ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION section as well?
5219         * tao/default.bld: Added build file for VxWorks.
5221         * tao/tao.bld: Added build file for VxWorks.
5223 Fri Aug  8 14:25:20 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
5225         * tao/orbobj.*: Updated various methods to use the new
5226         dynamically-linked strategy factories discussed below.
5228         * tao/default_client.*: This file now contains the default client
5229         strategy factory which is (a) dynamically linkable by the service
5230         configurator and (b) can be configured by flags passed in via
5231         service configurator.
5233         * tao/client_factory.*: This file now contains the abstract base
5234         class for the client strategy factory.
5236         * tao/default_server.*: This file now contains the default server
5237         strategy factory which is (a) dynamically linkable by the service
5238         configurator and (b) can be configured by flags passed in via
5239         service configurator.
5241         * tao/server_factory.*: This file now contains the abstract base
5242         class for the server strategy factory.
5244         * tao/params.*: Renamed DEMUX_STRATEGY enum to TAO_Demux_Strategy
5245         and put it at global scope instead of within TAO_OA_Parameters.
5247         * tao/svc.conf.eg: Created this file to serve as an example of
5248         various lines one might find in an application's svc.conf.
5250 Thu Aug  7 09:51:31 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
5252         * factories.cpp: Incorrect use of ACE_ASSERT in
5253         TAO_Server_Factory::object_lookup_strategy removed.
5255         * objtable.cpp: The octet sequence object key was being cast into
5256         a char* resulting in undefined behavior at times due to the lack
5257         of a NULL character to terminate it. Changes were made in the bind
5258         and find methods of TAO_Active_Demux_Table.
5260 Thu Aug 07 03:52:31 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
5262         * TAO version 0.0.8, released Thu Aug 07 03:52:31 1997.
5264 Thu Aug  7 00:43:14 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
5266         * tao/typecode.cpp: A couple of errors involving TAO_CONST crept
5267         in when Brian checked in his code.  I fixed these.
5269 Wed Aug  6 18:28:41 1997  Chris Cleeland  <cleeland@swarm.cs.wustl.edu>
5271         * tests/Cubit/TAO/clnt.cpp (main): Corrected the format
5272         specifications when timing was printing out from %ld to %d.  For
5273         some reason this never caused a problem on other platforms.
5275 Wed Aug  6 17:27:44 1997  Brian R. Mendel  <brian.r.mendel@boeing.com>
5277         * tao/typecode.h: Removed qualified name in typecode.h to eliminate
5278           compiler warnings by the GHS compiler.  Line 297.
5280         * tao/decode.cpp: Changed wchar_t* to CORBA_WChar* to eliminate
5281           compiler errors on GHS compiler.  Lines 142, 216, 729, 1371, and 1475.
5283         * tao/typecode.cpp: Deleted unreachable break statements at lines
5284           429, and 477, 904, and 947.
5286 Wed Aug  6 16:31:29 1997  Chris Cleeland  <cleeland@swarm.cs.wustl.edu>
5288         * tao/*: Changed 'const' to 'TAO_CONST' in contexts where the
5289         const didn't make sense.  For example, this occurred in situations
5290         where methods declared their return type as 'const CORBA_String',
5291         which does not translate to 'const char*' but rather 'char*
5292         const'.
5294         * tao/corbacom.h: Added #define for TAO_CONST.  See above for
5295         explanation.
5297         * tao/{connect,factories,giop,iiopobj,marshal,objtable,
5298         optable,orbobj,roa}.cpp: Removed errant trailing semi-colon on all
5299         the #pragma instantiate directives.
5301 Wed Aug  6 13:56:40 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
5303         * tao/{connect,factories,giop,iiopobj,marshal,objtable,
5304         optable,orbobj,roa}.cpp: Changed explicit template instantiations
5305         to use the new ACE enabling macro as well as adding the #pragma
5306         instantiate to placate Edison Design Group compilers.
5308         * tao/cdr.h: Changed default for CDR CTOR marshal factory to
5309         reflect the new name of the default marshal factory variable.
5311         * tao/orbobj.cpp (CORBA_ORB_init): Inserted call to
5312         TAO_Marshal::initialize().
5314         * tao/marshal.*: Added TAO_Marshal class to scope static
5315         initialization methods for the marshalling engine.
5316         TAO_DEFAULT_MARSHAL_FACTORY has moved inside of this.
5318 Sun Aug  3 13:12:03 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
5320         * tests/Cubit/TAO: Continued to improve the formatting of these
5321         tests.
5323 Sat Aug  2 13:55:40 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
5325         * tests/Cubit/TAO: Cleaned up some of the formatting so that
5326         it is easier to read.
5328 Thu Jul 31 16:19:43 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
5330         * tao/corba.h: Removed incorrect #include "tao/corba.h" in this
5331         file.  Bad form.
5333 Thu Jul 31 15:19:43 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
5335         * tests/Cubit/TAO/*.{h,i,cpp}: Changed all #include of specific
5336         header files to include the application-level "tao/corba.h".
5338         * tests/Cubit/TAO/Makefile (BIN): Removed test1_svr and test1_clnt
5339         for now until we can get them working again.  They stopped working
5340         after the BOA API changed and the non-standard get_request()
5341         method removed.
5343         * tao/any.h: Inserted #includes which insure that this header file
5344         is not position-dependent on other header files.
5346         * tao/corba.h: Created this catch-all header file for APPLICATIONS
5347         to use as a single entry point.  Currently it just includes all
5348         TAO header files, but will eventually be pared down to only those
5349         headers which warrant public exposure.
5351 Wed Jul 30 16:55:02 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
5353         * tao/typecode.i (CORBA_TypeCode): Re-ordered member
5354         initialization to correspond to declaration order.
5356         * tao/{typecode,orbobj,optable,decode,cdr}.cpp: Added explicit
5357         typecast to CORBA_ULong/unsigned long to eliminate warnings about
5358         comparisons btw. signed and unsigned entities.
5360         * tao/optable.cpp (bind): Put in explicit return type for
5361         TAO_Active_Demux_OpTable::bind().
5363 Wed Jul 30 14:18:02 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
5365         * tao/Makefile: Corrected automatic definition of TAO_ROOT and
5366         fixed all dependencies on tao header/inline files.
5368         * tao/{typecode,object}.i: Moved a few methods to the beginning of the file
5369         so that the compiler KNOWS that they are inlined when it hits the
5370         first reference to them later in the file.
5372         * tao/object.cpp: Added an end-of-line to silence a very picky SGI
5373         compiler.
5375 Wed Jul 30 10:05:38 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
5377         * tao/connect.cpp: Removed a number of explicit template
5378         instantiations that are already included in ACE.
5380 Wed Jul 30 14:20:18 1997  Darrell Brunsch <brunsch@cs.wustl.edu>
5382         * tao/boa.{i,h,cpp}: Removed the #include of "tao/objtable.h" and
5383         instead moved the methods that needed it from boa.i to boa.cpp
5385 Wed Jul 30 13:58:02 1997  Darrell Brunsch <brunsch@cs.wustl.edu>
5387         * tao/boa.h: Added #include of "tao/objtable.h" since it is needed
5388         in boa.i (which is included here when inlining is turned on)
5390 Wed Jul 30 10:05:38 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
5392         * tao/boa.h: Removed the #include of "tao/objtable.h" which seems
5393         to be unnecessary and may cause problems for template
5394         specialization.
5396         * tao/iiopobj.i (IIOP_Object): Changed the second parameter to the
5397         IIOP_Object constructor so that we can is a const
5398         IIOP::ProfileBody &.  This prevents a compiler warning.
5400         * tao/typecode.cpp (private_id): Removed unused variable status.
5402         * tao/objtable.cpp (bind): Removed the temp variable, which
5403         was unused.
5405 Tue Jul 29 19:31:11 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
5407         * tao/boa.cpp (get_boa): Added casts of ACE_UINT32 so that we
5408         don't have ambiguous calls to the constructor of ACE_INET_Addr.
5410         * tao/deep_copy.cpp (deep_copy): Removed an unreachable return
5411         value.
5413 Mon Jul 21 15:08:36 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
5415         * TAO version 0.0.7, released Mon Jul 21 15:08:36 1997.
5417 Mon Jul 21 12:06:16 1997  Darrell Brunsch <brunsch@cs.wustl.edu>
5419         * tao/object.cpp: removed the #include of object.i since it will
5420         always be #included in object.h
5422 Thu Jul 17 16:54:38 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
5424         * TAO version 0.0.6, released Thu Jul 17 16:54:38 1997.
5426 Thu Jul 17 16:43:23 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
5428         * tao/{optable,objtable}.cpp: Updated the explicit template
5429         instantiations at the end of these files to reflect the changes
5430         that Andy made.
5432 Thu Jul 17 10:08:45 1997  Aniruddha Gokhale  <gokhale@merengue.cs.wustl.edu>
5434         * tao/align.h: A very subtle error in "align_binary" was corrected. I
5435         was assuming that align_binary is always called by
5436         "ptr_align_binary". In the original inline function versions of
5437         align_binary and ptr_align_binary, the function align_binary would
5438         subtract 1 from the specified alignment that ptr_align_binary
5439         provided. Since I assumed that "align_binary" would always be
5440         called by "ptr_align_binary", I subtracted the 1 in
5441         ptr_align_binary and passed the result to "align_binary". This
5442         caused all sorts of problems for application code that directly
5443         called "align_binary". This error has been fixed. The macros for
5444         align_binary and ptr_align_binary are now exactly as the original
5445         inline functions.
5447         * tao/any.{h,cpp}: Added comments. In addition, in the code for
5448         Any::replace, we check if "_value" exists before trying to
5449         DEEP_FREE it. Otherwise this was resulting in a segmentation fault
5450         violation.
5452         * tao/boa.{h,i}: Added comments and changed "release" to CORBA_release
5454         * tao/cdr.{h,cpp}: Added some comments and removed some stuff that was
5455         under #if 0 .. #endif
5457         * tao/corbacom.h: Added lots of comments for the CORBA_String_var class
5459         * tao/decode.cpp: Made TAO_Marshal_Union::decode to work, added comments.
5461         * tao/encode.cpp: Made TAO_Marshal_Union::encode to work, added comments.
5463         * tao/factories.{h,cpp}: Added lots of comments. Removed "void
5464         object_lookup_strategy" method since we do this in the parameters
5465         class. Added code that will use a user defined lookup strategy if
5466         the corresponding flag is set. This needs to be tested.
5468         * tao/iiopobj.{i,cpp}: In the allocation and deallocation of the buffer
5469         for object key, we now use "new/delete" instead of "malloc/free".
5471         * tao/interp.cpp: commented out a line that decremented 4 from the
5472         offset provided for indirected typecodes. I guess this was plain
5473         hack to get some broken things to work.
5475         * tao/objtable.{h,cpp}: Added lots of comments. Added code that will use
5476         template specialization for the dynamic hashing case. In addition,
5477         improved the destructors of the classes since previously, these
5478         were not releasing occupied memory.
5480         * tao/optable.{h,cpp}: Added lots of comments. Added template
5481         specialization for dynamic hashing scheme. Made dynamic hashing
5482         scheme the default. Added a new definition for "struct
5483         TAO_operation_db_entry". The idea is that an IDL compiler will
5484         generate a database of operations and their corresponding
5485         skel_ptrs. Such a database is now passed to teh constructors of
5486         the operation lookup tables. This way, only one instance of such
5487         lookup tables can be shared by any number of objects implementing
5488         the same interface.
5490         * tao/params.{h,i,cpp}: Made dynamic hashing the default. Added a hook
5491         by which users can supply their lookup strategies. *Needs testing*.
5493         * tao/typecode.{h,i,cpp}: Added comments and many changes. The private
5494         state's constructor now takes an argument that is a TCKind
5495         representing the TypeCode kind of the object of which we are the
5496         private state. Removed "child_free". Instead, we introduced a
5497         destructor for the private state that frees all the
5498         children. Another important change is to the constructor of the
5499         TypeCode class. We pass a "parent" pointer, if any, to the
5500         constructor. All children typecodes will share the octet buffer of
5501         the parent. Only freestanding typecodes will allocate octet
5502         buffers. We have a new data member called "non_aligned_buffer_"
5503         because the buffer we allocate may not be aligned on a 4 byte
5504         boundary. As a result, we may start using the buffer at a shifted
5505         position to the right. However, we do not want to lose a handle to
5506         the original buffer that was allocated because at the time of
5507         freeing, this pointer needs to be freed.
5509         * tests/Cubit/TAO: Modified a few files (method_db.i, cubitS.cpp)
5510         so that they use the modified optable and objtable classes. Added
5511         a README file to indicate how to run the example.
5513         * tests/Thruput_test: Modified virtually all the files to make it
5514         work with the latest TAO release and its include files. Also,
5515         changes similar to Cubit were necessary due to changes in the
5516         objtable and optable classes.
5518 Wed Jul 16 14:17:01 1997  Chris Cleeland  <cleeland@merengue.cs.wustl.edu>
5520         * tao/params.*: Eliminated unnecessary
5521         ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES checks from
5522         TAO_OA_Parameters (unnecessary b/c it's not a template).  Also
5523         corrected the type of TAO_OA_Parameters::ace_singleton_lock_.
5525 Wed Jul 16 11:34:36 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
5527         * tao/boa.cpp: Removed some unused code.
5529         * tao/compat/objbase.h: Added explicit check for prior inclusion
5530         of ace/OS.h, with an error being produced if it's not included.
5531         This will help keep me honest and remember to always include OS.h
5532         beforehand, since I do most of my development on non-WIN32
5533         platforms.
5535         * tao/*.{h,cpp}: Added #include "ace/OS.h" before every inclusion
5536         of <objbase.h>.  This is required on WIN32 platforms because
5537         objbase.h eventually ends up including <winsock.h>, which is the
5538         wrong version of winsock from what ACE requires.  Thus, by
5539         including OS.h prior to objbase.h, objbase.h ends up not trying to
5540         include a winsock header.
5542         * tao/orbobj.cpp: Added missing #include for tao/debug.h.
5544 Wed Jul 16 10:55:55 1997  Darrell Brunsch <brunsch@cs.wustl.edu>
5546         * tao/PC_Install.bat: removed it since it isn't needed anymore
5548         * tao/TAO.dsp: Changed include path and removed calling of
5549           PC_Install.bat
5551         * tests/Cubit/TAO/{client,server}.dsp: Changed include path
5553 Tue Jul 15 16:13:53 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
5555         * tests/Cubit/TAO/cubitC.cpp: Added missing calls to Release()
5556         after QueryInterface() calls.  The tip-off that this wasn't
5557         happening was the fact that, upon client exit, there were upwards
5558         of 15 references to the object references.  Now it's only 5-7
5559         (more work to go).
5561         * tests/Cubit/TAO/*: Changed all #include paths to be "tao/...".
5562         Also, changes to orb.h (see below) obviated additional header
5563         inclusion in certain files.
5565         * tao/compat/*.h: Changed the guts of these files so that they
5566         work more like their "real" counterparts in the VC++ 5.0.  This
5567         should encourage compatibility.  Note that, unlike the previous
5568         files, objbase.h MUST be included before initguid.h; this is
5569         consistent with the model on WIN32.
5571         * tao/*.{h,cpp}: Changed all #include paths to be "tao/...".
5572         Also, changes to orb.h (see below) obviated additional header
5573         inclusion in certain files.
5575         * tao/giop.cpp: Removed get_request() crufty old code.
5577         * tao/iiopobj.cpp: Backed out many prior special-code additions
5578         for defining IIDs.  Hopefully the need for these is negated by
5579         changes elsewhere in the "compat" files.
5581         * tao/object.cpp: Corrected the conditional compilation switch
5582         used to determine if we define IID_IUnknown.  This now happens
5583         whenever WIN32 isn't defined, instead of before when it was only
5584         on unix or vxworks platforms.
5586         * tao/Makefile: Eliminated the need to copy files into a "proto/"
5587         directory; now, everything is built into and used from the "tao"
5588         directory.
5590         There is also a new, optional, environment
5591         variable--TAO_ROOT--which should be set to the ".../TAO"
5592         directory.  If it's not set, the Makefile will set it to
5593        WRAPPER_ROOT/TAO.
5595         Lastly, libcorba.* has changed to libTAO.*.
5597         * tao/orb.h: Eliminated many header files which had been
5598         explicitly included here and were causing all manner of problems
5599         with circular includes.  Library components must now be careful to
5600         include appropriate headers for all components they use, and we
5601         will likely have to create a corba.h file for clients to use.
5603 Fri Jul 11 12:12:40 1997  Darrell Brunsch <brunsch@cs.wustl.edu>
5605         * tao/TAO.dsp: changed to use ace-r.dll in the release
5606           version
5608         * tests/Cubit/TAO/{client,server}.dsp: changed to use ace-r.dll
5609           and tao-r.dll for the release versions.
5611 Thu Jul 10 15:47:24 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
5613         * docs/: Removed the following obsolete files: README.apm,
5614         BUILDING, and TESTS.
5616         * tao/params.*: Moved the instance() methods into the .cpp from
5617         the .i, as well as the declaration for the singleton locks.
5618         Having the singleton locks declared in the .i file caused much
5619         consternation when ACE inlining was turned on.
5621         * tao/iiopobj.cpp: #ifdef'd the IID_STUB_Object declaration added
5622         a few days ago so that it happens one way on NT, and another in
5623         the rest of the Universe.  I would have preferred to find a more
5624         general solution, but didn't find one quickly enough to satisfy my
5625         current requirements.
5627         * tao/roa.*: Removed get_request() method.  This should improve
5628         our McCabe scores ;-)
5630         * tao/boa.h: Removed get_request() method.
5632 Wed Jul  9 14:44:31 1997  Darrell Brunsch <brunsch@cs.wustl.edu>
5634         * TAO-Install: Added installation instructions for NT
5636 Tue Jul  8 20:52:06 1997  Darrell Brunsch <brunsch@cs.wustl.edu>
5638         * tao/PC_Install.bat: Made it very quiet.
5640         * tao/params.{cpp,h,i}: Changed TAO_OA_PARAMS from a
5641           ACE_Singleton to a plain singleton by just integrating the
5642           ACE_Singleton code into the class.
5644 Tue Jul  8 14:27:47 1997  Darrell Brunsch <brunsch@cs.wustl.edu>
5646         * tao/except.h: added ACE_Svc_Export to SYSEX macro
5648         * tao/iiopobj.cpp: changed declaration of IID_STUB_Object
5649           to include ACE_Svc_Export
5651         * tao/stub.h: added ACE_Svc_Export to IID_STUB_Object
5653 Tue Jul  8 12:44:14 1997  Darrell Brunsch <brunsch@cs.wustl.edu>
5655         * tao/orbobj.cpp: Put the "*" in before the comment since it is
5656           supposed to be there.  Put a space between it and the comment
5657           to get rid of the warning which VC was giving originally.
5659 Tue Jul  8 10:21:27 1997  Darrell Brunsch <brunsch@cs.wustl.edu>
5661         * tao/typecode.cpp: Changed a few loop counters from int to
5662           CORBA_ULong to get rid of unsigned/signed comparison warnings
5664         * tao/orbobj.cpp: Got rid of a "*" before a comment.  Looked like
5665           a typo
5667         * tao/PC_Install.bat: Replaced "#...." with "rem ...."
5669 Mon Jul  7 20:59:05 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
5671         * tests/Cubit/TAO/test1_{svr,clnt}.cpp (main): Added template
5672           specialization code and updated the formatting.  Thanks to Arturo
5673           Montes <mitosys@colomsat.net.co> for reporting this.
5675         * tests/Cubit/TAO/test1_svr.cpp (main): Added the -i options to
5676           getopt().  Thanks to Arturo Montes <mitosys@colomsat.net.co> for
5677           reporting this.
5679         * TAO/tao/orbconf.h (SIZEOF_LONG_DOUBLE): Added a
5680           #define for M_UNIX.  Thanks to Arturo Montes
5681           <mitosys@colomsat.net.co> for reporting this.
5683 Sun Jul 06 02:37:24 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
5685         * TAO version 0.0.5, released Sun Jul 06 02:37:24 1997.
5687 Sun Jul  6 00:10:28 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
5689         * tao: Fixed all the code so that we put ACE_MT around all the
5690           ACE_GUARD_RETURN macros.
5692         * tao: Updated all of TAO to make sure we use [] when deleting
5693           arrays in order to avoid memory leaks.  This looks like lots of
5694           sloppiness left over from the original SunSoft IIOP code.
5696 Sat Jul  5 16:12:31 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
5698         * tao/{any,iiopobj,nvlist,principa,request,roa,svrrqst,typecode}.cpp:
5699           Fixed a double-deletion of a lock.
5701         * tao/typecode.i: Cleaned up lots of minor warnings with the code
5702           that are only revealed when running GCC.  The code should now
5703           compile almost completely cleanly with -wall.
5705         * tao/typecode.{i,h}: Changed the name of TC_PRV_State to
5706           TC_Private_State.
5708         * tao: Replaced ACE_Thread_Mutex with ACE_SYNCH_MUTEX so that the
5709           code will compile on non-threaded and threaded platforms alike.
5711         * tao/marshal.cpp: Added template specializations for the Marshal
5712         primitives.  Thanks to Arturo Montes <mitosys@colomsat.net.co> for
5713         reporting this.
5715         * tao/Makefile (LDLIBS): Replaced -lcorba with -lACE so that we no
5716         longer have problems with circular link dependencies.  Thanks to
5717         Arturo Montes <mitosys@colomsat.net.co> for reporting this.
5719 Sat Jul 05 13:25:23 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
5721         * TAO version 0.0.4, released Sat Jul 05 13:25:23 1997.
5723 Sat Jul  5 12:39:57 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
5725         * tao: All throughout TAO I removed the direct use of system
5726         include files in lieu of using ace/OS.h.
5728         * tao/{orbobj,typecode}.cpp: orb.h must be included before others
5729         include files. Previous includes prevent correct use of ACE config
5730         flags, therefore, I removed them.  Thanks to Arturo Montes
5731         <mitosys@colomsat.net.co> for reporting this.
5733         * tao/{debug,roa}.cpp: changed _POSIX_THREADS to ACE_HAS_PTHREADS.
5734         Thanks to Arturo Montes <mitosys@colomsat.net.co> for reporting
5735         this.
5737         * tao/decode.cpp (decode): The casting (CORBA_ULong) kind is
5738         unnessary and wrong so I removed it.  Thanks to Arturo Montes
5739         <mitosys@colomsat.net.co> for reporting this.
5741         * tao/debug.cpp (emit_prefix): Changed line 99 from
5743         #define emit_prefix (stream) ...
5745         to
5747         #define emit_prefix(stream) ...
5749         The blank character prevent after macro name (emit_prefix) prevent
5750         correct definition.  Thanks to Arturo Montes
5751         <mitosys@colomsat.net.co> for reporting this.
5753 Sat Jul  5 01:04:24 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
5755         * TAO/tao/xdr.cpp: Removed unistd.h and string.h from the xdr.cpp
5756           file since those aren't necessary.  Thanks to Arturo Montes
5757           <mitosys@colomsat.net.co> for reporting this.
5759 Fri Jul  4 00:18:21 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
5761         * tao/roa.h: Removed derogatory COMments ;-).  Thanks to Anton van
5762           Straaten <anton@appsolutions.com> for reporting this.
5764 Thu Jul  3 16:16:14 1997  Darrell Brunsch <brunsch@cs.wustl.edu>
5766         * Added ACE_Svc_Export to a couple of declarations to make NT
5767           happier
5769 Thu Jul  3 13:43:20 1997  Darrell Brunsch <brunsch@cs.wustl.edu>
5771         * Added Visual C++ 5.0 project and workspace files for the TAO
5772           library and Cubit test
5774 Wed Jul  2 12:44:42 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
5776         * TAO/tests: Moved tests from TAO/IIOP/tests to TAO/tests
5778 Wed Jul 02 00:20:28 1997  Douglas C. Schmidt  <schmidt@cs.wustl.edu>
5780         * Compiled the first alpha release of TAO on Solaris just
5781           to make sure it still works.  So far, so good... hence,
5782           the first alpha release is out the door!
5784 Tue Jul  1 23:35:53 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
5786         * VERSION: Added a VERSION file, starting at version 0.0.0...
5788 Tue Jul  1 23:00:15 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
5790         * Added a new tests directory with the Cubit and TTCP
5791         examples. The older test directory will be deleted soon.
5793         In addition, the tc_constants in the tc_constants.cpp  file are
5794         declared with an ACE_Svc_Export to make the Win NT compiler
5795         happy. Extern declarations in typecode.h had the same changes.
5797         * Updated the PC_install.bat file. In addition, there was one more
5798         warning in typecode.cpp (Win NT compiler) that was fixed. Finally,
5799         in the the tc_const.cpp file, the ACE_Svc_Export was used
5800         accidently. This has been fixed.
5802         * A number of files were updated with ACE_Svc_Export so that
5803         variables and classes do not remain unresolved for Win32
5804         platform. Similarly, Irfan had sent me a list of warnings that the
5805         Win NT compiler was giving. These are fixed.
5807         * marshal.*: Changed the way make_marshal_object works. Instead of
5808         having a switch statement, we index into a private table of
5809         marshal objects using the TypeCode _kind field. MarshalFactory now
5810         maintains this private table.
5812 Mon Jun 30 17:39:02 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
5814         * Added a new README file and a COPYING file that explains the
5815         contents of TAO and clarifies its copyright status.
5817 Sun Jun 29 10:06:50 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
5819         * marshal.*: Added CORBA_Environment as a parameter to
5820         make_marshal_object factory method. The reason for doing this was
5821         to enable inlining of the CDR::encode and CDR::decode methods.
5823         * typecode.*: Changed the way typecodes get deleted. Constant
5824         typecodes are now owned by the ORB and their private state freed
5825         when the ORB dies. IDL generated typecodes are not owned by the
5826         ORB and are the only ones whose refcount matters. Typecodes
5827         belonging to the IDL generated typecodes are also not owned by the
5828         ORB and there is no effect on their refcount. They get freed only
5829         if the parent is destroying itself.
5831         In typecode.i, methods such as length and content_type were not
5832         getting inlined due to presence of switch statements. Converted to
5833         if/else.
5835         * interp.cpp: Bug fix: Had previously forgotten to update the
5836         size/alignment of the private state of the typecode.
5838 Fri Jun 27 14:27:49 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
5840         * any.cpp: The deep_copy and deep_free optimizations applied. In
5841         the previous release, I had forgotten to add these to the Any
5842         constructor (that calls deep_copy) and Any destructor/replace
5843         (that call deep_free).
5845         * connect.cp, factories.cpp: Added code that hardcodes the socket
5846         buffer sizes to 64K. This is a hack for the time being.
5848 Thu Jun 26 10:02:47 1997  Aniruddha Gokhale  <gokhale@merengue.cs.wustl.edu>
5850         * Some more progress on IDL compiler. Generates the client and
5851         server side files without much contents in it.
5853 Thu Jun 26 09:49:38 1997  Aniruddha Gokhale  <gokhale@merengue.cs.wustl.edu>
5855         * Added a full range of optimizations to the TAO IIOP interpretive
5856         marshaling engine. The static methods encoder and decoder have
5857         been removed from the CDR class. Instead, separate classes for
5858         marshaling have been created for each individual data type. The
5859         CDR stream maintains a factory that returns an appropriate
5860         marshaling object depending on the data type to be
5861         marshaled. Files added include marshal.h, marshal.i, encode.cpp,
5862         decode.cpp, deep_free.cpp, and deep_copy.cpp. The marshal.h file
5863         defines classes for an abstract MarshalObject. The factory is
5864         responsible to return a concrete specialized instance of the
5865         MarshalObject.
5867         * Updated the CORBA_TypeCode class so that it now provides all the
5868         CORBA_2.0 compliant operations. These include length(),
5869         content_type(), member_type(), member_label(),
5870         discriminant_type(), id(), default_index(). The equal() operations
5871         is still not implemented. In addition, precomputation
5872         optimizations are applied to the TypeCode class. This includes
5873         precomputing various parameters (if any) of a TypeCode. For
5874         example, a struct TypeCode keeps track of the member count and
5875         member types. As a result, it is not necessary to interpret the
5876         CDR encapsulated stream to retrieve these parameters.
5878         * At this time, there are some problems getting the Unions to work.
5880 Thu Jun 12 15:45:49 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
5882         * IIOP/lib/objtable.cpp: Added explicit template instantiations
5883         for ACE_Hash_Map_Manager<>.
5885         * IIOP/lib/giop.*: Finally got rid of all those methods that took
5886         ACE_HANDLE as the argument.  Now, all those operate on
5887         ACE_SOCK_Streams.
5889 Thu Jun  5 10:15:21 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
5891         * IIOP/lib/giop.cpp: Corrected output format in error message.
5893 Thu Jun  5 10:09:01 1997  Chris Cleeland  <cleeland@merengue.cs.wustl.edu>
5895         * IIOP/test/svr.cpp: Added a new class to catch SIGINT and
5896         terminate.  This was necessary to Quantify the server process.
5898         * IIOP/lib/orbobj.h: Added ACE_INLINE to forward decls of
5899         CORBA_release() and CORBA_is_nil().
5901 Wed May 23 14:39:01 1997  Brian Mendel  <bmendel@mdc.com>
5903         * IIOP/lib/objtable.{h,cpp}:  Added template specialization of
5904         ACE_Hash_Map_Manager for char*'s.
5906         * IIOP/test/cubitS.cpp:  Fixed type_id to be of type CORBA_String_var.
5907         Also, added a debug msg to print the object address to show the
5908         object for which the request is made.
5910         * IIOP/test/svr.cpp:  Added capability to create multiple Cubit
5911         objects via command line options.  Added -n for number of objects and
5912         -k for specifying a base name.  For instance, -k Beevis -n 2 creates
5913         Beevis1 and Beevis2 objects.  The clnt can then specify a specific
5914         object for the request as usual.
5916 Wed May 22 12:28:45 1997  Brian Mendel  <bmendel@mdc.com>
5918         * IIOP/test/clnt.cpp:  Deleted VxWorks specific sections.  Command
5919         line is now working for VxWorks.
5920         * IIOP/test/svr.cpp:  Deleted VxWOrks specific sections.  Command line
5921         is now working for VxWorks.
5923 Wed May 22 11:31:42 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
5925         * IIOP/test/svr.cpp: Added better error checking and messages, and
5926         performed general re-formatting.
5928         * IIOP/test/method_db.i (initialize_method_db): Changed arg type
5929         to use a pointer to the abstract class TAO_Operation_Table.
5931         * IIOP/test/cubitS.cpp (_skel_Cubit::_skel_Cubit): Added better
5932         error checking and messages.  Also defaulted to use the linear
5933         object table implementation rather than the hashed to simplify
5934         debugging.
5936         * IIOP/test/clnt.cpp: Moved some code around so that more of the
5937         code is common is less is specific to VxWorks and other platforms.
5938         Also did general re-formatting.
5940         * IIOP/lib/optable.cpp (TAO_Linear_OpTable::find): Initialization
5941         of the loop variable makes the loop work properly.
5943         * IIOP/lib/objtable.cpp (TAO_Dynamic_Hash_ObjTable::find):
5944         Explicitly specified length of object key in CTOR for ACE_CString
5945         because object keys are not zero-terminated.
5947         * IIOP/lib/giop.cpp: Added newlines to the end of all ACE_DEBUG()
5948         messages.
5950         * IIOP/lib/factories.cpp: Added template specializations for
5951         ACE_Hash_Addr<ACE_INET_Addr, TAO_Client_Connection_Handler>.
5953 Tue May 22 09:32:41 1997  Brian Mendel  <bmendel@mdc.com>
5955         * IIOP/lib/cdr.h: Deleted #define old_value ACE_INLINE and
5956         #define ACE_INLINE old_value lines. Added #undefs for ACE_INLINE
5957         prior to redefines.  Changes required to compile on Windows NT.
5959 Tue May 20 14:47:46 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
5961         * IIOP/test/cubitS.h: Removed forward decl of
5962         TAO_Active_Operation_Table.
5964         * IIOP/test/{cubitC,cubitS}.*: Changed include quoting characters
5965         from [<>] to double-quotes.
5967         * IIOP/test/Makefile: Removed cubit.o from clnt and svr target
5968         (this has been subsumed by cubit[CS]).
5970         * IIOP/lib/optable.h: Changed ACE_RW_Mutex to ACE_SYNCH_RW_MUTEX.
5972         * IIOP/lib/optable.cpp: Inserted explicit template instantiations.
5974         * IIOP/lib/Makefile: Added optable to the Makefile.
5976         * IIOP/lib/optable.cpp: Moved ~TAO_Operation_Table() into here.
5978         * IIOP/lib/object.i: Moved find() and bind() into the cpp file.
5979         Moved ~TAO_Operation_Table() into optable.cpp.
5981 Tue May 20 14:39:00 1997  Brian Mendel  <bmendel@mdc.com>
5983         * IIOP/test/*: Commited changes to Cubit Example as a current snapshot
5984           of required changes.
5986         * IIOP/lib/*: Changes required for header file includes.  Added
5987           conditionals around _IIOP_BUILD_
5989 Tue May 20 13:55:58 1997  Chris Cleeland  <cleeland@merengue.cs.wustl.edu>
5991         * IIOP/test/*: Commited this stuff in-process so that Brian
5992         M. doesn't have to duplicate effort.
5994 Tue May 20 13:04:00 1997  Brian Mendel <bmendel@mdc.com>
5996         * IIOP/lib/debug.cpp: Deleted spaces between flockfile (f) and
5997         funlockfile (f).  Changed instances of debug_filter to
5998         TAO_debug_filter.  Deleted space between emit_prefix (stream).
6000         * IIOP/lib/cdr.cpp Added undef(s) for ACE_INLINE and
6001           do_undef_on_ACE_INLINE to eliminate redefinition problems.
6004 Tue May 20 10:55:09 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
6006         * IIOP/lib/cdr.h: Fixed the automatic inclusion of cdr.i into
6007         cdr.h by checking to see if __ACE_INLINE__ is not defined and, if
6008         so, defining ACE_INLINE to be "inline" (we tidy up the namespace
6009         immediately after the inclusion of cdr.i, too).  See source for
6010         comments regarding why this is done.
6012         * IIOP/lib/optable.cpp (TAO_Linear_OpTable_Entry): Removed setting
6013         of opname and skel_ptr to zero in CTOR since the CTOR for those
6014         already insures this.  Moreover, NT's compiler was complaining
6015         about ambiguous resolutions.
6017         * IIOP/lib/{orbobj,giop,debug,boa}.cpp: Fixed reference to
6018         debug_level so it's TAO_debug_level.
6020         * IIOP/lib/object.h: Replaced inclusion of optable.h with forward
6021         decl of TAO_Operation_Table.
6023         * IIOP/lib/optable.cpp: Fixed names of methods that were changed
6024         in the header but never changed in the source.  Amazing that
6025         neither g++ nor Sun C++ caught these gaffs!  (Finally, the NT
6026         compiler wins).
6028         * IIOP/lib/{orbobj,object}.h: Changed the forward decls of
6029         CORBA_release() and CORBA_is_nil() so that they are only in effect
6030         when inlining is NOT being used.
6032         * IIOP/lib/giop.cpp: Fixed incorrect passing of an object to
6033         ACE_DEBUG() where an int is expected.
6035 Mon May 19 17:16:34 1997  Chris Cleeland  <cleeland@merengue.cs.wustl.edu>
6037         * IIOP/lib/roa.cpp: Explicit cast rids us of a warning.
6039         * IIOP/lib/params.h: Fixed CTOR name.  Once again I'm surprised
6040         G++ didn't catch this.
6042         * IIOP/lib/optable.h: Corrected erroneous method signature on
6043         bind().
6045         * IIOP/lib/objtable.cpp: Corrected erroneous method signature on
6046         TAO_Linear_ObjTable::bind().
6048         * IIOP/lib/{object,orbobj}.h: Forward declaration of
6049         CORBA_release(CORBA_Object_ptr) and CORBA_is_nil(CORBA_Object_ptr)
6050         were commented out.  I think this will cause a problem when we
6051         DON'T inline, but I'll cross that bridge later.
6053         * IIOP/lib/{orb,factories}.h: Made inclusion of some headers
6054         conditional on the compilation phase (building the library or an
6055         application).
6057         * IIOP/lib/cdr.i: Removed incorrect default arguments (g++ didn't
6058         catch them).
6060         * IIOP/lib/Makefile: Removed thread from the header list.
6062 Mon May 19 10:07:00 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
6064         * IIOP/lib/optable.cpp: Changed implementation of the operation
6065         table and the parameters repository so that they use the right
6066         class names.
6068 Sat May 17 17:18:38 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
6070         * First pass at providing a backend to the SunSoft's CORBA IDL
6071         compiler front end.
6073 Fri May 16 17:30:31 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
6075         * IIOP/lib/svrrqst.*: Corrected some comments, adjusted some
6076         argument type names to reflect their new, namespace-sanitized
6077         names, and moved short methods into a new inline file.
6079         * IIOP/lib/stub.h: Corrected some comments and adjusted some
6080         argument type names to reflect their new, namespace-sanitized
6081         names.
6083         * IIOP/lib/roa.cpp: Corrected syntax error and fixed up typedef.
6085         * IIOP/lib/params.*: Removed extraneous comments and fixed
6086         argument type on demux_strategy().
6088         * IIOP/lib/orbobj.*: Added comments, removed static pointer to
6089         the ORB.
6091         * IIOP/lib/optable.h: Removed extraneous comments and fixed
6092         typedefs.
6094         * IIOP/lib/objtable.cpp: Fixed some syntax errors introduced by
6095         reformating.
6097         * IIOP/lib/object.cpp: Adjusted some argument type names to
6098         reflect their new, namespace-sanitized names.
6100         * IIOP/lib/invoke.cpp: Removed crufty #includes and adjusted some
6101         argument type names to reflect their new, namespace-sanitized
6102         names.
6104         * IIOP/lib/iioporb.*: Moved short methods into inline file, added
6105         IIOP_ORB_ptr typedef, and changed data member to conform to ace
6106         standards.
6108         * IIOP/lib/iiopobj.*: Added the second CTOR that I forgot last
6109         time and adjusted some argument type names to reflect their new,
6110         namespace-sanitized names.
6112         * IIOP/lib/giop.h: Added comments for various enums and
6113         structures.
6115         * IIOP/lib/giop.cpp: Switched various GIOP::Invocation methods to
6116         use handler_->peer() for socket communication rather than going
6117         through a file descriptor.  Also began the arduous (no other word
6118         could explain it!) process of converting the homegrown debugging
6119         message macro uses into ACE_DEBUG() uses.
6121         * IIOP/lib/factories.*: Added explicit DTOR for TAO_Client_Factory
6122         and completed all the darn explicit template instantiations.
6123         Changed 'Svc_Handler' to 'TAO_Client_Connection_Handler', and
6124         added the forgotton TAO_Client_Factory::connector() method.
6126         * IIOP/lib/debug.*: Added 'TAO_' prefix to global debug state
6127         variables and removed crufty #includes.
6129         * IIOP/lib/connect.cpp: Change ROA_Handler to
6130         TOA_OA_Connection_Handler (missed these the last time through).
6132         * IIOP/lib/cdr.cpp: Added responsive commentary.
6134         * IIOP/lib/boa.cpp: Added comments to the dispatching code.
6136         * IIOP/lib/{any,boa,request,typecode}.cpp: Removed references to
6137         thread.h/connmgr.*.
6139 Thu May 15 19:08:16 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
6141         * Finished updating all the reformatting.
6143 Thu May 15 15:54:49 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
6145         * IIOP/lib/principa.h: Corrected syntax error which eliminated the
6146         _refcount data member.
6148         * IIOP/lib/{params,roa}.*: Updated class names to reflect ROA -->
6149         TOA_OA pseudo-namespace change.
6151         * IIOP/lib/orbobj.*: Updated CORBA_ORB_init() to return pointer to
6152         new ORB singleton.
6154         * IIOP/lib/orb.h: Commented out some include files to eliminate
6155         wierd circular dependencies.
6157         * IIOP/lib/optable.h: Moved TAP_Operation_Table into here.  Put
6158         OpTable* classes into the TAO_Operation_Table* pseudo-namespace.
6160         * IIOP/lib/objtable.*: Moved TAO_Object_Table into here.  Moved
6161         the Entry classes out of the scope of their respective concrete
6162         operation tables, so they're now named <concrete_table>_Entry.
6164         * IIOP/lib/object.*: Moved TAO_Operation_Table into optable.*, and
6165         added a data member which carries a pointer to the ORB with which
6166         the object is associated.
6168         * IIOP/lib/iioporb.*: Added a singleton typedef for the ORB which
6169         is what CORBA_ORB_init() will now return.  Modified
6170         string_to_object() so that it sets the ORB on the CORBA_Object
6171         that it returns.
6173         * IIOP/lib/{iiopobj,nvlist}.h: Added some responsive commentary.
6175         * IIOP/lib/giop.cpp: Modified connection establishment code in
6176         GIOP::Invocation::start() to utilize the client connection manager
6177         in the ORB.
6179         * IIOP/lib/giop.h: Put a TAO_Client_Connection_Handler* into
6180         GIOP::Invocation in place of the client_endpoint.
6182         * IIOP/lib/factories.*: Updated explicit template instantiations,
6183         added TAO_Client_Connection_Handler.
6185         * IIOP/lib/connect.*: Renamed things--ROA_Parameters -->
6186         TOA_OA_Parameters, ROA_Handler --> TOA_OA_Connection_Handler.
6188         * IIOP/lib/boa.h: Moved TAO_Object_Table into objtable.*, added
6189         comments where appropriate.
6191         * IIOP/lib/{any,cdr,iioporb,invoke}.*: Re-formatting and creation
6192         of inline method file.
6194 Tue May 13 21:51:22 1997  Douglas C. Schmidt  <schmidt@tango.cs.wustl.edu>
6196         * Continued to update the format of the TAO source code so that it
6197           will be consistent with the style used in ACE.
6199 Mon May 12 17:02:29 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
6201         * IIOP/lib/roa.*: Moved short method into an inline file.
6202         Miscellaneous reformatting.  Adjustment to new type names
6203         (prefaced by TAO_ for namespace protection).
6205         * IIOP/lib/object.*: Moved short methods into an inline file.
6206         Changed lookup()/register_op() to find()/bind() for consistency
6207         with established ACE APIs.  Miscellaneous reformatting.
6209         * IIOP/lib/iiopobj.*: Moved short methods into an inline file.
6210         Added CTOR for IIOP::Version and IIOP::ProfileBody.  Added
6211         convenience CTOR for IIOP_Object where the profile can be
6212         supplied.  Miscellaneous reformatting.
6214         * IIOP/lib/boa.*: Moved short methods into an inline file.  Changed
6215         lookup()/register_obj() to find()/bind() for consistency with
6216         established ACE APIs.
6218         * headers: Added comments to force C++ mode in emacs for header
6219         files, and changed SCCS version tag info to RCS version tag info.
6221 Wed May  7 14:49:46 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
6223         * IIOP/lib/corbacom.cpp: Some bugs from the CORBA_String_var class
6224         have been fixed. Thanks to Brian Mendel for noticing these.
6226         * IIOP/lib/boa.cpp: In CORBA_BOA::dispatch, the opname local
6227         variable of type CORBA_String_var is changed to be of type
6228         CORBA_String. This was because the String_var class would assume
6229         ownership of the quantity assigned and delete it. Thanks again to
6230         Brian Mendel for noticing this.
6232 Tue May  6 14:06:49 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
6234         * IIOP/lib/boa.hh: the register_obj's 2nd argument is changed from
6235         CORBA_Object_ptr& to CORBA_Object_ptr
6237         * IIOP/lib/object.hh: the return type for register_op method on
6238         CORBA_Object is changed from void to int to be consistent.
6240         Added a new method "get_subclass" to CORBA_Object that returns a
6241         pointer to the subclass. Typeically, this would be pointer to an
6242         object that implements an interface.
6244         * IIOP/lib/objtable.{hh,cpp}: @nd argument of register_obj changed
6245         from CORBA_Object_ptr& to CORBA_Object_ptr.
6247         * IIOP/lib/orb.hh: the type signature of "skeleton" is changed to
6248         take CORBA_Object_ptr rather than CORBA_Object_ptr& as its 2nd argument.
6250 Mon May  5 20:28:54 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
6252         * IIOP/lib/boa.cpp: commented out code that uses the "void
6253         *context" field. It doesn't make any sense to have it.
6255         * IIOP/lib/boa.hh: Added 2 pure virtual methods (shutting_down and
6256         clean_shutdown).
6258         In addition, the "register_obj" method was added. It was missing before.
6260         * IIOP/lib/corbacom.cpp: String_var's constructor bug is fixed. It
6261         was trying to free storage that was never allocated.
6263         * IIOP/lib/iiopobj.{hh,cpp}: Added a method - "get_name" that
6264         retrieves the object name.
6266         * IIOP/lib/object.{hh,cpp}: Added a method - "get_name" that
6267         retrieves the object's name or key. This is for debugging purposes.
6269         * IIOP/lib/orbobj.cpp: There was an infinite loop in parsing the
6270         options to BOA_init. Fixed.
6272         * IIOP/lib/stub.hh: Added the "get_name" virtual method.
6274 Sat May  3 22:45:23 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
6276         * IIOP/lib/boa.cpp: Added code temporarily that invokes the
6277         skeleton that is looked up. We still need to add code that will
6278         handle the case when no match is found on the operation names.
6280         * IIOP/lib/boa.hh: The register_obj method on TAO_Object_Table
6281         now returns an integer indicating status of registering (-1 =>
6282         failure, 0 for success).
6284         * IIOP/lib/object.hh: The register_op method on
6285         TAO_Operation_Table now returns an integer code (O for success, -1
6286         for failure).
6288         * IIOP/lib/objtable.{hh,cpp}: The register_obj method returns an
6289         integer code representing either success or failure.
6291         * IIOP/lib/optable.{hh,cpp}: Added new files that implement
6292         concrete strategies for operation name lookup.
6294 Fri May  2 08:48:29 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
6296         * IIOP/lib/object.hh: Modified the signature of register_op on
6297         TAO_Operation_Table to take a second argument to be a pointer to
6298         the actual skeleton.
6300         Thanks to Brian Mendel for reporting this.
6302 Thu May  1 16:46:11 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
6304         * IIOP/lib/object.{hh,cpp}: Added a method that can set the parent
6305         pointer.
6307         * IIOP/lib/params.cpp: A hook has been provided in ROA_Factory to
6308         enable the user to use a user-defined demux strategy.
6310 Wed Apr 30 22:00:51 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
6312         * IIOP/lib/objtable.{hh,cpp}: Added two new files that define
6313         different object demultiplexing strategies.
6315         * IIOP/lib/Makefile: Added objtable as additional source file to compile.
6317         * IIOP/lib/boa.cpp: Provided the default destructor for the
6318         TAO_Object_Table.
6320         * IIOP/lib/boa.cpp: Provided the default destructor for the
6321         TAO_Operation_Table.
6323         * IIOP/lib/orbobj.cpp: Added support for the -OAtablesize option
6324         in the call to CORBA_ORB::BOA_init method.
6326         * IIOP/lib/params.{hh,i,cpp}: Added support to ROA_Factory to return
6327         a specific object lookup strategy.
6329         *IIOP/lib/roa.cpp: The ROA constructor initializes its "objtable_"
6330         private data member with the object lookup strategy returned by
6331         ROA factory.
6333 Tue Apr 29 11:52:48 1997  Aniruddha Gokhale  <gokhale@mambo.cs.wustl.edu>
6335         * IIOP/lib/any.hh: Moved CORBA_Any_ptr declaration to orb.hh.
6337         * IIOP/lib/boa.{hh,cpp}: Renamed BOA to CORBA_BOA. The CORBA_BOA class
6338         maintains a pointer to an abstract TAO_ObjectTable class. Concrete
6339         classes inheriting from TAO_ObjectTable will provide strategies
6340         for lookup.
6342         Added virtual functions to do dispatch based on object key. In
6343         addition, added a lookup method based on object key that delegates
6344         the task of looking the object to the object table it maintains.
6346         Changed the signature of typedef CORBA_BOA::dsi_handler to be pointer to
6347         member function of class CORBA_BOA. Eventually, this will point to
6348         the dispatch method of class CORBA_BOA.
6350         Moved "struct Dispatch_Context" from roa.hh to boa.hh since we
6351         want BOA to be a full fledged OA eventually and not remain an
6352         abstract class as it is now. All other OA's such as ROA inherit
6353         from BOA and only add extra functionality.
6355         * IIOP/lib/connect.cpp: There was a syntax error (missing comma)
6356         in one of the ACE_DEBUG statements which has been fixed.
6358         * IIOP/lib/corbacom.{hh,cpp}: Added class CORBA_String_var as well
6359         as the CORBA compliant CORBA_string_dup.
6361         * IIOP/lib/except.hh: Moved CORBA_Exception_ptr declaration to orb.hh.
6363         * IIOP/lib/object.hh: Added an abstract class
6364         TAO_Operation_Table. CORBA_Object maintains a pointer to this
6365         abstract class. The IDL compiler will eventually generate concrete
6366         classes that employ different lookup strategies for operation name
6367         lookup.
6369         * IIOP/lib/orb.hh: Added forward declarations to all CORBA_*
6370         classes. In addition, moved all the CORBA_*_ptr declarations here.
6372         * IIOP/lib/orbobj.{hh,cpp}: Added the CORBA compliant BOA_init
6373         method to class CORBA_ORB. Users can now pass arguments to
6374         BOA_init. Eventually, we want to make this method return any of
6375         the specialized OA's depending on the arguments. Right now, we get
6376         a pointer to the ROA.
6378         * IIOP/lib/params.{hh,i}: Added some more methods and enum
6379         declarations to the ROA_PARAMS singleton.
6381         * IIOP/lib/principa.hh: Moved the CORBA_Principal_ptr declaration
6382         to orb.hh.
6384         * IIOP/lib/roa.{hh,cpp}: Moved some functionality to boa.hh. ROA
6385         is now only a specialized form of BOA.
6387         * IIOP/lib/stub.hh: Moved the typedef for "skeleton" to orb.hh.
6389         * IIOP/lib/svrrqst.{hh,cpp}: Had to rename BOA to CORBA_BOA.
6391         * IIOP/lib/typecode.hh: Moved the CORBA_TypeCode_ptr declaration
6392         to orb.hh.
6394 Tue Apr 22 23:30:19 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
6396         * IIOP/lib/connect.cpp (open): Added log message.
6398         * IIOP/lib/params.cpp (concurrency_strategy): Uses reactive
6399         strategy when appropriate.
6401         * IIOP/lib/params.hh: Reactive strategy added.
6403 Tue Apr 22 21:03:15 1997  Chris Cleeland  <cleeland@tango.cs.wustl.edu>
6405         * IIOP/lib/giop.cpp: Changed erroneous ACE_GUARD calls to ACE_GUARD_RETURN
6406         calls.
6408 Tue Apr 22 16:15:52 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
6410         * IIOP/lib/roa.cpp: Removed more POSIX thread calls.
6412         * IIOP/lib/invoke.cpp: Changed ForceSynchronousCancellation to
6413         ACE_Synchronous_Cancellation_Required and made it use the ACE_OS
6414         calls.
6416         * IIOP/lib/{typecode,svrrqst,request,principa,orbobj,nvlist,iiopobj,giop,except,any}.*:
6417         Removed all vestiges of pthread mutexes...they are now
6418         ACE_Thread_Mutexes.  This will likely have to change if we want to
6419         compile something completely devoid of threads, but that's another
6420         day.  Also, the mutexes have moved from being globals to being
6421         members on the respective classes.  No files should be dependent
6422         on thread.hh any longer.
6424         * IIOP/lib/connect.cpp (open): Removed code obsoleted by use of
6425         the Strategy_Acceptor.
6427         * IIOP/lib/{roa.cpp,connect.cpp},IIOP/tests/svr.cpp: Changes to
6428         use new singletons described below.
6430         * IIOP/lib/params.*: Changed ROA_Parameters and ROA_Factory to use
6431         ACE_Singleton<>.  The singleton types are now named ROA_PARAMS and
6432         ROA_FACTORY.
6434 Mon Apr 21 23:44:34 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>
6436         * IIOP/lib/roa.cpp (ROA): Changed spelling of clientAcceptor_ to
6437         client_acceptor_ to be consistent with ACE style conventions.
6439 Mon Apr 21 10:52:42 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
6441         * IIOP/test/clnt.cpp: Moved call to CORBA_ORB_init() prior to the
6442         parsing of the command line args.  This got switched around during
6443         porting to VxWorks.
6445         * IIOP/lib/roa.cpp: Changed calls using clientAcceptor_to use APIs
6446         vended by ACE_Strategy_Acceptor.
6448         * IIOP/lib/roa.hh: Moved default thread flags into ROA_Factory.
6450         * IIOP/lib/params.*: Added ROA_Factory, a singleton which is the
6451         beginning of an abstract factory dynamically producing runtime
6452         strategies based on information found in ROA_Parameters.
6454         * IIOP/lib/connect.cpp: Added call to ROA_Handler's base class
6455         CTOR in initializer list.
6457         * IIOP/lib/connect.hh: Changed ROA_Handler's CTOR so that it can
6458         take an optional ACE_Thread_Manager* arg.  This makes it
6459         compatible with the CTORs for the base class.  Also changed base
6460         class for ROA_Acceptor to ACE_Strategy_Acceptor.
6462         * IIOP/lib/svrrqst.*: Changed references to BOA_ptr from TOA_ptr.
6464         * IIOP/lib/connect.*: ROA_Handler/ROA_Acceptor moved from roa.*
6465         into here.
6467         * IIOP/lib/params.*: ROA_Parameters moved from roa.* into here.
6469         * IIOP/lib/boa.*: What used to be TOA is now BOA, and lives in
6470         here.
6472         * IIOP/lib/roa.*: Major restructuring required removal of all
6473         classes (see other log entries) from here.  This file now houses
6474         only the ROA class.
6476         * IIOP/lib/{tcpoa.*,toa.*}: Removed because of name changes from
6477         TCP_OA->ROA and TOA->BOA.
6479 Fri Apr 18 08:09:19 1997  Brian Mendel   <bmendel@mdc.com>
6481         * cdr.hh,corbacom.{hh,cpp},giop.cpp,marshall.cpp,typecode.cpp:
6482         Changes required for WChar missed in earlier committed code.
6484         * connmgr.cpp: Changes required for select statement.
6486         * nvlist.cpp: Conditional include for memory.h added.  VxWorks
6487         does not have memory.h.
6489         * object.cpp: Added conditional for VXWORKS to define
6490         IID_IUnknown.
6492         * orbconf.hh: Minor tuning of the configuration file.
6494         * tcpoa.{hh,cpp}: Added VXWORKS conditional includes.
6496         * toa.cpp: Added VXWORKS conditional includes.
6499 Mon Apr 15 17:01:00 1997  Brian Mendel  <bmendel@mdc.com>
6501         * roa.cpp: Added return statement to ROA_Handler::open(void*)
6502         method.
6504         * giop.cpp: Modified giop::read_buffer to replace undefined fc
6505         with peer.get_handle().  Modified giop::incoming_message method
6506         parameter list to match function prototype exactly.
6508         * tcpoa.cpp: Replaced fd instances in debug messages with
6509         peer.get_handle() calls.
6511 Mon Apr 14 13:45:54 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
6513         * roa.{hh,i,cpp},tcpoa.cpp,svr.cpp: Replaced ACE_ROA with
6514         ROA_Parameters, which is a GoF-style singleton.
6516 Sun Apr 13 00:01:56 1997  Chris Cleeland  <cleeland@tango.cs.wustl.edu>
6518         * roa.cpp: Fix continuation condition in ROA_Handler::svc()'s loop
6519         so that it doesn't stop after one iteration.  Also added some
6520         debug messages.
6522         * giop.cpp: Fixed some returns being called with no value.  This
6523         should have been caught in the previous round of changes.
6525 Sat Apr 12 23:10:08 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
6527         * tcpoa.{hh,cpp}: TCP_OA::handle_message() now returns a value
6528         indicating how a message was handled.
6530         * roa.cpp: ROA_Handler::handle_input() now returns a meaningful
6531         value based on what TCP_OA::handle_message() returns.
6533         * giop.{hh,cpp}: Added end-of-file detection on socket
6534         connections, and that is now propagated all the way back up
6535         through GIOP::incoming_message().  I don't know if I violated
6536         something in the spec by doing this, but it was necessary.  I'll
6537         look into it later.
6539 Thu Apr 10 11:49:44 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
6541         * giop.{hh,cpp}: Overloaded all methods dealing with connections
6542         so that there are two, one taking a file descriptor as argument,
6543         the other taking an ACE_SOCK_Stream.  Right now, the *_Stream
6544         version simply forwards to the fd-based one.  I would have
6545         preferred to get rid of the fd-based methods altogether, but we've
6546         only converted the server runtime; the client is still using the
6547         original sun code, which is effectively fd-based.  In the course
6548         of doing this, I also simplified the decls for incoming_message by
6549         creating typedefs for some of the function pointers passed as
6550         args.
6552         * orbconf.hh: Fixed the stupid auto-endian-ness detector
6553         AGAIN...had my logic reversed!
6555         * roa.cpp: Adjusted code in accordance with changes to tcpoa.hh.
6557         * tcpoa.hh: Moved and renamed TCP_OA::dispatch_context to be
6558         ::Dispatch_Context, and changed its endpoint member to be an
6559         ACE_SOCK_Stream.
6561         * roa.hh: Fixed handle_input() to use the underlying peer() data
6562         member for reading data, rather than using its argument.  This is
6563         so that when a different thread handles each connection,
6564         handle_input() can simply be called repeatedly by svc().
6566 Wed Apr  9 16:19:21 1997  Chris Cleeland  <cleeland@tango.cs.wustl.edu>
6568         * tcpoa.cpp: Fixed a problem that G++ didn't notice regarding
6569         changing the notion of endpoints in servers from server_endpoint
6570         to an ACE_HANDLE.
6572 Wed Apr  9 15:43:37 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
6574         * svr.cpp: The -p option is gone, and -e takes its place and is
6575         required.  This requires the user to specify not only the port
6576         number, but also the IP address of on which the server should
6577         listen for requests.  See ACE_INET_Addr documentation for valid
6578         string formats for addresses.  Also, the -t option sets the "use
6579         threads" global.
6581         * orbconf.hh: Hopefully resolved the tension between MS and Unix
6582         platforms in inferring endian-ness of the target platform based on
6583         preprocessor defines.  We now check for i386, _M_X86, and vax
6584         (yeah, like we really worry about that, but it's easy to do).
6586         * roa.{hh,i,cpp}: Added support for spawning threads to handle
6587         incoming requests.  This involves a state flag for whether or not
6588         to use threads, calling activate() in ROA_Handler::open() if that
6589         flag is set, and creating ROA_Handler::svc() that simply loops
6590         calling handle_input().
6592 Tue Apr  8 11:14:57 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
6594         * IIOP/test/svr.cpp: Moved setting of upcall(), forwarder(),
6595         context(), etc. into here rather than in TCP_OA::TCP_OA(), which
6596         is where I mistakenly stuck them a few days ago (duh!).
6598         * IIOP/lib/tcpoa.cpp: Removed setting of ACE_ROA::upcall(), which belongs
6599         in the server code.  I got confused because the function names
6600         were so similar: tcpoa.cpp contains ::tcp_oa_dispatcher(), and
6601         svr.cpp contains ::tcpoa_dispatch().
6603         * IIOP/lib/roa.{hh,i,cpp}: Added forwarding function to ACE_ROA global namespace
6604         hack.
6606         * IIOP/lib/orbconf.hh: Fixed preprocessor checks that auto-detect
6607         endian-ness of this processor.
6609 Mon Apr  7 21:08:24 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
6611         * IIOP/test/test1_{clnt,svr}.cpp: THESE HAVE NOT BEEN CONVERTED TO
6612         USE ACE EVENT HANDLING!!  This round of changes explicitly
6613         instantiates templates where required.
6615         * IIOP/test/svr.cpp: Global function ::OA_listen() no longer
6616         exists; its functionality is now fully contained within ::main().
6617         If USE_ACE_EVENT_HANDLING is defined, a Reactor-based event loop
6618         is used.  The original intent was to allow conditional compilation
6619         to select btw. the original method and a Reactor-based method.
6620         However, weaving that into the library proved far more difficult
6621         than anticipated, so more than likely not defining
6622         USE_ACE_EVENT_HANDLING will cause massive grief.
6624         * IIOP/lib/toa.cpp: Changed call to TCP_OA::init() to reflect new
6625         ACE_INET_Addr argument type.
6627         * IIOP/lib/tcpoa.cpp (TCP_OA): All initialization methods were
6628         changed, specifically the CTOR and TCP_OA::init, to reflect the
6629         introduction of ACE_INET_Addr.  Two side-effects of using
6630         ACE_INET_Addr are that (1) a server can specify the address on
6631         which it wants to listen and (2) best that I can tell, the server
6632         MUST specify the address on which it wants to listen because
6633         otherwise it won't be able to publish a rational IOR.  The event
6634         loop is now changed to simply loop on Reactor::handle_events().
6636         * IIOP/lib/tcpoa.hh (TCP_OA): Removed vestiges of this component's
6637         use of the original connection management scheme.  Where
6638         appropriate, hostnames and ports were replaces by ACE_INET_Addr,
6639         endpoints by ACE_HANDLEs, etc.  One particularly nasty thing done
6640         was to declare ROA_Handler as a friend so that handle_message()
6641         can be called from ROA_Handler::handle_input(), which to me
6642         exposes a hole in the original architecture wherein input is
6643         "pulled" rather than waited-for.  We might need to re-think how
6644         this is handled within TAO.
6646         * IIOP/lib/roa.{hh,i,cpp}: These files contain the required
6647         components to support the new server-side ACE-based
6648         connection/event substrate.  The client side remains, as always,
6649         using the connection mgmt scheme used by the original Sun IIOP
6650         code.
6652         * IIOP/lib/giop.cpp: Added explicit template instantiation for
6653         when this is needed.
6655         * IIOP/lib/corbacom.hh: Now protects itself from multiple
6656         inclusion.
6658         * IIOP/lib/Makefile: Added roa.* where appropriate.
6660 Wed Mar 19 10:25:21 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
6662         * IIOP/docs/us/codecount/*.count: Added to repository.
6664         * Makefile: Added to repository.
6666         * IIOP/objbase.h: Moved to IIOP/compat.
6668         * IIOP/initguid.h: Moved to IIOP/compat.
6670 Thu Mar 13 14:06:28 1997  Chris Cleeland  <cleeland@cs.wustl.edu>
6672         * ChangeLog: Added the ChangeLog.  We'd like to thank David
6673           Brownell <david-b@pacbell.net>, the original author of SunSoft
6674           IIOP, for helping to launch TAO off in the right direction!