1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
|
Tue Oct 13 23:03:24 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
* tao/ORB_Core.h:
* tao/ORB_Core.i:
* tao/ORB_Core.cpp:
* tao/Invocation.i:
* tao/Connect.cpp:
* tao/CDR.h:
* tao/CDR.cpp:
The input CDR can be created using a user provided data block,
this is used to select the right kind of locking for the
Data_Block reference count.
The ORB_Core acts as a Factory of Data_Blocks, selecting the
right type according to the -ORBinputcdrallocator option.
* orbsvcs/Event_Service/svc.conf:
Use the appropiate allocator for the EC, because it shares the
CDR buffers between several threads (to minimize data copying).
Tue Oct 13 22:15:53 1998 Irfan Pyarali <irfan@cs.wustl.edu>
* orbsvcs/tests/EC_Throughput/ECT_Supplier.cpp (svc): Must set the
wr_ptr correctly. Otherwise, the ORB doesn't know how much to
data to encode.
* orbsvcs/orbsvcs/Event/Event_Manip.cpp (_create): event_set
length must be calculated before the call to get_buffer() since
that call will change the length.
Tue Oct 13 17:04:15 1998 Jeff Parsons <jp4@cs.wustl.edu>
* tao/Any.cpp: Modified copy constructor and assignment operator
to avoid encoding the value of the source Any when it is 0
(which it is if the Any was constructed from just a
typecode. Perhaps this sequence of calls should never be made,
but this guards against it anyway.
Tue Oct 13 10:51:10 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
* tao/ORB.cpp: Thread ids in some platforms (ex: HP-UX) are
structures, so they cannot be initialized to 0. Thanks to David
Janello <David.Janello@abnamro.com> for reporting this.
Tue Oct 13 09:16:20 1998 David L. Levine <levine@cs.wustl.edu>
* orbsvcs/orbsvcs/Sched/DynSched.cpp: changed a handful
of == to =. Thanks, g++ :-)
* orbsvcs/tests/EC_Basic/EC_Basic.cpp (dump_results):
changed type of static array elements from int to
CORBA::ULong to avoid signed/unsigned comparisons.
Mon Oct 12 18:55:00 1998 Chris Gill <cdgill@cs.wustl.edu>
* orbsvcs/orbsvcs/RtecScheduler.idl
orbsvcs/orbsvcs/Event/EC_Gateway.cpp
orbsvcs/orbsvcs/Event/EC_Gateway_UDP.cpp
orbsvcs/orbsvcs/Sched/DynSched.{cpp, h}
orbsvcs/orbsvcs/Sched/SchedEntry.{cpp, i}: Added a new kind RT_Info
type for EC_Gateway RT_Infos that depend on remote invocations. This
change facilitates building a distributed schedule without requiring
the use of a single global scheduling service. Thanks to Tom
Venturella <thomas.e.venturella@boeing.com> for this idea.
* orbsvcs/orbsvcs/Runtime_Scheduler.cpp
orbsvcs/orbsvcs/Scheduler_Factory.cpp
orbsvcs/orbsvcs/Sched/Config_Scheduler.cpp
orbsvcs/tests/EC_Multiple/EC_Multiple.cpp
orbsvcs/tests/Sched_Conf/Sched_Conf.{cpp, dsp}
orbsvcs/tests/Sched_Conf/Sched_Conf_Runtime.{cpp, dsp, h} (NEW):
Fixed a number of problems with correctness and usability of the
config and runtime schedulers, and the scheduler factory. Thanks
to Amir Bahmanyari <abahmany@teknowledge.com> for providing detailed
debugging reports.
Mon Oct 12 18:32:01 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
* tao/try_macros.h:
Added new macros to support multiple TRY blocks in the same
function. Andy is going to test them.
* performance-tests/Cubit/TAO/IDL_Cubit/README:
The file still made references to the -s option.
Mon Oct 12 14:55:41 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
* orbsvcs/orbsvcs/Naming/CosNaming_i.cpp (TAO_NamingContext): Made
a mistaken with my Naming_Context change for the
Hash_Map_Manager. We need to use the argument to set the size
of the table, not the data member since it hasn't been assigned
yet. Thanks to Chris Gill and Kirthika for reporting this.
Mon Oct 12 11:30:38 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
* orbsvcs/orbsvcs/Event/Event_Channel.h:
* orbsvcs/orbsvcs/Event/Event_Channel.i:
* orbsvcs/orbsvcs/Event/Event_Channel.cpp:
* orbsvcs/orbsvcs/Event/Memory_Pools.cpp:
Removed some template instantiations that were not used anymore.
Moved the template instantiations related to memory pool from
Event_Channel.cpp into Memory_Pools.cpp
Added a comparison operator for the TAO_EC_Event class, this is
needed to complete the instantiation of ACE_Array<TAO_EC_Event>.
* orbsvcs/orbsvcs/Event/Event_Manip.h:
The constructor was private, making some g++ variants very
angry.
Mon Oct 12 10:31:35 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
* orbsvcs/orbsvcs/Naming/CosNaming_i: Removed the need to allocate
HASH_MAP dynamically. This helps improve performance and also
eliminates another point of failure in the constructor.
Mon Oct 12 09:52:46 1998 David L. Levine <levine@cs.wustl.edu>
* orbsvcs/orbsvcs/Naming/CosNaming_i.cpp (TAO_NamingContext ctor):
reordered initializers to match declaration order.
* performance-tests/Cubit/TAO/MT_Cubit/run_tests.pl:
put ./ in front of executable names. That way, users
don't need to have . in their path.
Sun Oct 11 23:18:19 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
* orbsvcs/orbsvcs/Event/Event_Manip.h:
* orbsvcs/orbsvcs/Event/Event_Manip.i:
* orbsvcs/orbsvcs/Event/Event_Manip.cpp:
* orbsvcs/orbsvcs/Event/Dispatching_Modules.h:
* orbsvcs/orbsvcs/Event/Dispatching_Modules.i:
* orbsvcs/orbsvcs/Event/Dispatching_Modules.cpp:
* orbsvcs/orbsvcs/Event/Event_Channel.h:
* orbsvcs/orbsvcs/Event/Event_Channel.i:
* orbsvcs/orbsvcs/Event/Event_Channel.cpp:
* orbsvcs/orbsvcs/Event/CORBA_Utils_T.h:
* orbsvcs/orbsvcs/Event/CORBA_Utils_T.i:
* orbsvcs/orbsvcs/Event/CORBA_Utils_T.cpp:
* orbsvcs/orbsvcs/Event/Memory_Pools.h:
* orbsvcs/orbsvcs/Event/Memory_Pools.i:
* orbsvcs/orbsvcs/Event/Memory_Pools.cpp:
Implemented a new class to manage event life time. There are
two components to the new strategy: a reference counted version
of the EventSet buffer and a smart pointer to a single event in
the buffer.
This new strategy allowed us to go down from 6 memory copies to
1 copies for events received remotely (and 2 for local events).
Since the copies were nested and the Event structure can be
quite complicated this reduced the number of memory allocations
significantly.
The old CORBA_Utils classes are no longer needed.
* orbsvcs/orbsvcs/Event/Event_Channel.h:
* orbsvcs/orbsvcs/Event/Event_Channel.i:
* orbsvcs/orbsvcs/Event/Event_Channel.cpp:
Fixed a problem with correlation, if a consumer was expecting
A&B and a supplier sent A, A, B the consumer received two copies
of A.
* orbsvcs/tests/EC_Basic/EC_Basic.h:
* orbsvcs/tests/EC_Basic/EC_Basic.i:
* orbsvcs/tests/EC_Basic/EC_Basic.cpp:
Added a new correlation test.
* orbsvcs/orbsvcs/Makefile:
* orbsvcs/Event_Service/Makefile:
* orbsvcs/tests/EC_Multiple/Makefile:
* orbsvcs/tests/EC_Basic/Makefile:
* orbsvcs/tests/EC_Mcast/Makefile:
* orbsvcs/tests/EC_Custom_Marshal/Makefile:
Updated the dependencies.
* orbsvcs/tests/EC_Basic/README:
* orbsvcs/tests/EC_Mcast/README:
The README file was out of date.
* docs/releasenotes/TODO.html:
Updated the task corresponding to this change.
1998-10-11 Marina Igorevna Spivak <marina@mambo.cs.wustl.edu>
* orbsvcs/Naming_Service/Naming_Service.{h, cpp}, README: Added a
command line option to specify how long a service should run
before shutting down. This is useful for running purify,
quantify, or avoiding having explicitly kill the process.
* orbsvcs/orbsvcs/CosNaming_i.{h,cpp}:
Removed several memory allocations (in <get_context>, and
<resolve>).
Factored some common code out into <populate_binding> function.
Cleaned up some code and got rid of <bind_new_context_helper>.
Changed TAO_NamingContext to contain a pointer to the hash map
rather than actual object to allow command line option of choosing
the size of hash map allocated upon creation (rather than using
the default size).
Sun Oct 11 17:59:32 1998 Kirthika Parameswaran <kirthika@cs.wustl.edu>
* examples/Callback_Quoter/Client_i.cpp (CLient_i::run ()):
changed the argument wrongly passed to the unregister_callback
from Consumer_var to Consumer_var.in ().
Sun Oct 11 17:09:16 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
* TAO_IDL/be/be_visitor_interface/interface_cs.cpp:
* tao/POAC.cpp:
* tao/PolicyC.cpp:
* tao/DynAnyC.cpp:
* tao/CurrentC.cpp:
Optimized _narrow() it does not need to call _create_stub() on
the collocated case, using the CORBA::Object stub is good
enough.
1998-10-11 Marina Igorevna Spivak <marina@mambo.cs.wustl.edu>
* orbsvcs/Naming_Service/Naming_Service.h : change the order of
data member declarations to match initialization order in
constructors in .cpp file.
1998-10-10 Marina Igorevna Spivak <marina@mambo.cs.wustl.edu>
* orbsvcs/orbsvcs/Naming/Naming_Utils.{h, cpp}: Updated
TAO_Naming_Server to take in and pass on a parameter specifying
the size for the naming cotexts' hash tables.
* orbsvcs/Naming_Service/Naming_Service.{h, cpp}, README: Added a
command line option to specify size of hash tables
allocated upon creation of naming contexts.
Sat Oct 10 22:31:00 1998 Kirthika Parameswaran <kirthika@cs.wustl.edu>
* examples/Callback_Quoter/Client_i.cpp:
added the part where the consumer keys in information.
Sat Oct 10 16:19:11 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
* tests/CDR/tc.cpp:
This file was still referencing CORBA::_tc_Bounds and
CORBA::_tc_BadKind
1998-10-10 Marina Igorevna Spivak <marina@mambo.cs.wustl.edu>
* orbsvcs/tests/Simple_Naming/client.cpp: Added parenthesis to
avoid warnings when compiling on NT.
Sat Oct 10 00:51:52 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
* TAO version 0.2.23 released.
Fri Oct 09 23:48:40 1998 Irfan Pyarali <irfan@cs.wustl.edu>
* tao/Server_Request.cpp (set_exception and set_result): Used the
Any copy constructor to copy the user provided any.
Fri Oct 9 17:13:32 1998 Nagarajan Surendran <naga@cs.wustl.edu>
* orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.cpp: Used the host and
pid to get a unique names for the vdev and streamendpoint objects
to register with the Naming Service while using the Process
Endpoint strategy. This will avoid name clashes between the audio and
video process.
* orbsvcs/orbsvcs/AV/Endpoint_Strategy.cpp: Used the child's host
and pid to lookup for Vdev and streamendpoint for the process
endpoint strategy.
* orbsvcs/orbsvcs/AV/AVStreams_i.cpp: Removed the code that used
_out variable to pacify sun_CC warnings. Sun_CC doesn't complain
anymore.
Fri Oct 9 16:44:14 1998 Nagarajan Surendran <naga@cs.wustl.edu>
* orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Receiver.idl:
Added this new interface for the Trader Agent to push the server
mmdevice and the filenames to the mpeg client.
* orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/Command_Handler.{h,cpp}:
Added code to implement the Receiver interface.
Fixed memory leaks.
Fixed the code so that it works for multiple movies i.e
tears down the stream after every movie and starts a new
connection.
Also made code robust by using suspend and resume
handlers for the video client to wait for the initial frame from
the server.
Added an option to specify the data host to bind for
the data which can be used for specify an ATM interface.
Fixed the problem of Play command not playing from where
fastforward/rewind stopped.
* orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/ctr.cpp:
Removed some unnecessary and redundant code and moved them into
classes in Command_Handler.cpp.
* orbsvcs/tests/AVStreams/mpeg/source/client/vcr.cpp:
Fixed the code so that it passes the command line arguments
properly to the command_handler.
Fri Oct 9 16:27:46 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
* orbsvcs/tests/EC_Throughput/ECT_Supplier.h:
* orbsvcs/tests/EC_Throughput/ECT_Supplier.cpp:
* orbsvcs/tests/EC_Throughput/ECT_Consumer.h:
* orbsvcs/tests/EC_Throughput/ECT_Consumer.cpp:
We measure and report the elapsed time for the test (in the case
of the consumer the time since we receive the first event).
We use this to measure throughput (in events per second).
* orbsvcs/orbsvcs/Event/Memory_Pools.h:
* orbsvcs/orbsvcs/Event/Memory_Pools.cpp:
* orbsvcs/orbsvcs/Event/Event_Channel.h:
* orbsvcs/orbsvcs/Event/Event_Channel.cpp:
* orbsvcs/orbsvcs/Event/Dispatching_Modules.h:
* orbsvcs/orbsvcs/Event/Dispatching_Modules.cpp:
We do not overload operator new and operator delete anymore. The
allocators we were using were problematic for this use case and
we believe that a better speed up can be obtained by reducing
the number of allocations. Thanks to "Mark Hyett"
<mhyett@std.saic.com>, "Mark L. Boriack"
<mboriack@std.saic.com>, "J. Russell Noseworthy"
<rnosewor@objectsciences.com> for helping us with this bug.
Fri Oct 09 15:27:17 1998 Nanbor Wang <nanbor@cs.wustl.edu>
* tao/ORB_Core.cpp (~App_Allocated): Free up the memory pool
before deleting the allocators.
Fri Oct 9 13:42:47 1998 Shawn Michael Atkins <sma1@lambada.cs.wustl.edu>
* performance-tests/Thruput/TAO/results/REMOTE/README: added this
file so cvs won't erase these empty directories for storing
results of the thruput test. Note: also added the empty
directories ./results/REMOTE.
* performance-tests/Thruput/TAO/run_client: run_client now checks
for the testname directory and if it doesn't exist, it will
create a directory to put the results.
Fri Oct 09 02:19:09 1998 Irfan Pyarali <irfan@cs.wustl.edu>
* tao/IIOP_Object.cpp (Profile): Added new constructor.
Fri Oct 9 01:15:54 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
* tao/Operation_Table.cpp:
* tao/Operation_Table.h:
* TAO_IDL/be/be_interface.cpp:
Integrated Linear Search operation lookup strategy option to
TAO_IDL. We use again GPERF for generating lookup method for
this. Thanks to great work by Vishal (vishal@cs), GPERF has an
option to generate linear search code.
Thu Oct 8 17:37:14 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
* tao/ORB.h:
* tao/Typecode.h:
* tao/Typecode.cpp:
* tao/Typecode_Constants.h:
* tao/Typecode_Constants.cpp:
Moved the CORBA::TypeCode::_tc_Bounds and
CORBA::TypeCode::_tc_Kind typecodes to their proper namespace.
* docs/releasenotes/TODO.html:
Updated some tasks related to the last change.
* tao/Connect.cpp:
If an exception is thrown while handling a oneway request we
just ignore it, unless the debugging flags in the ORB are
enabled, in that case we print an informative message and the
exception.
* tao/ORB_Core.h:
* tao/ORB_Core.cpp:
The App_Allocated class does not own the CDR allocators all the
time, sometimes they are global and shared by all the
App_Allocated objects.
Thu Oct 08 16:14:04 1998 Nanbor Wang <nanbor@cs.wustl.edu>
* tao/ORB_Core.{h,cpp} (~App_Allocated): Added a destructor for
this class. Some of its members are now allocated from the heap
and they need to be deleted.
Thu Oct 8 12:15:38 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
* orbsvcs/tests/EC_Throughput/ECT_Supplier.h:
* orbsvcs/tests/EC_Throughput/ECT_Supplier.cpp:
* orbsvcs/tests/EC_Throughput/ECT_Consumer.h:
* orbsvcs/tests/EC_Throughput/ECT_Consumer.cpp:
The new test sends "bursts" of events, without any pause between
each event. Multiple burst can be sent with small pauses in
between.
Shutdown works now, even if multiple suppliers and multiple
consumers are beign used. The ECT_Consumer program only needs to
know the number of suppliers beign used.
Thu Oct 08 09:50:18 1998 Nanbor Wang <nanbor@cs.wustl.edu>
* orbsvcs/orbsvcs/Property/CosPropertyService_i.h: Added #progma
to disable VC "inheritance via dominance" warnings.
* docs/releasenotes/orbcore.html (Miscellany): Fixed a dead link.
Thanks to Mark Weel <weel@lucent.com> for reporting this.
Wed Oct 07 23:27:07 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
* TAO version 0.2.22 released.
Wed Oct 7 22:27:48 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
* orbsvcs/orbsvcs/Property/CosPropertyService_i.cpp
(delete_property): Fixed the double deletion case. Thanks to
"Ulf Jhrig" <jaehrig@desys.com> for reporting this.
Wed Oct 7 21:44:52 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
* tao/try_macros.h:
Some compilers (MSVC++ 5.0) will complain about throwing an
exception and not returning a value.
* tao/Object_Table.cpp:
The find() method on the object table was asserting that the
entry ought to be in use, in fact if the entry was free the
object was not found and we just have to return -1.
Wed Oct 07 14:49:32 1998 Nanbor Wang <nanbor@cs.wustl.edu>
* orbsvcs/orbsvcs/orbsvcs[_static].dsp: Added property service
files. Thanks to Ulf Jaehrig <jaehrig@desys.com> for noticing
this.
Wed Oct 07 11:33:37 1998 Irfan Pyarali <irfan@cs.wustl.edu>
* tao/POA.cpp (state): Fully qualified the enums of the
POA_Manager's Processing_State. Thanks to John Morey
<jmorey@tbi.com> for helping with this.
Wed Oct 7 10:53:45 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
* examples/Callback_Quoter/Supplier_i.cpp:
Added missing template instantiations.
Wed Oct 7 09:19:00 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
* tao/try_macros.h (TAO_RETHROW): Added a return to
TAO_THROW_ENV_RETURN. Thanks to John Morey for reporting this.
Wed Oct 7 08:39:59 1998 Aniruddha Gokhale <gokhale@sahyadri.research.bell-labs.com>
* tao/try_macros.h:
Added a backslash in a the TAO_TRY macro definition. Thanks to
John Morey (jmorey@tbi.com) for sending the bug fix.
Wed Oct 7 08:29:51 1998 Aniruddha Gokhale <gokhale@sahyadri.research.bell-labs.com>
* doc/compiler.html:
Updated the documentation for the -Ge, -Gt options. Thanks to
Tom Dobridge <dobridge@persimmon.com> for pointing this out.
Wed Oct 07 02:50:39 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
* TAO version 0.2.21 released.
Wed Oct 7 000:13:19 1998 Jeff Parsons <jp4@cs.wustl.edu>
* presentations/TAO/dynany.tex:
New file for use whenever the nexr presentation comes around.
Wed Oct 07 00:07:43 1998 Irfan Pyarali <irfan@cs.wustl.edu>
* tests/Param_Test/server.cpp:
* performance-tests/Thruput/TAO/server.cpp:
* orbsvcs/tests/Simulator/DOVEMIB/svr.cpp:
Changed "RootPOA_is_BAD" to "child_poa". It was sending
negative POA vibes ;-)
Tue Oct 06 22:49:27 1998 Irfan Pyarali <irfan@cs.wustl.edu>
* tao/Connect.cpp (handle_close): Replaced this->shutdown() with
explicit removal from the reactor and explicit closing of the
socket. this->shutdown() also doing too much since it was also
purging the recycling act from the recycler. We need the
recycling act to be available until all the reference to the
Svc_Handlers are removed and the Svc_Handler is destroyed since
we need the recycling act to check the hint.
Thanks to Mark L. Boriack <mboriack@std.saic.com> for helping in
tracking down this problem.
Tue Oct 6 22:12:30 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
* examples/Simple/grid/Grid_i.cpp: Fixed bugs with exceptions.
Thanks to Tom Dobridge <dobridge@persimmon.com> for pointing
this out.
Tue Oct 6 21:25:22 1998 Darrell Brunsch <brunsch@cs.wustl.edu>
* TAO-INSTALL.html: Added an extra note about compiling the
release version. Care has to be taken since conflicts
between the two tao_idl compilers can occur.
Tue Oct 6 21:02:24 1998 Vishal Kachroo <vishal@merengue.cs.wustl.edu>
* examples/Simple/bank/AccountManager_i.cpp (close): Changed
TAO_TRY_ENV to _env to avoid duplicate definition. Thanks to
Tom Dobridge <dobridge@persimmon.com> for pointing this out.
Tue Oct 6 20:28:10 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
* tao/try_macros.h: The TAO_TRY macro generates a new do/while
block even for the native C++ exception case, this is more
consistent with the alternative mapping. Thanks to Tom Dobridge
<dobridge@persimmon.com> for pointing this out.
* examples/Callback_Quoter/MarketFeed_i.cpp: *
examples/Callback_Quoter/Client_i.cpp: Removed instantiations of
TAO_TRY_ENV because TAO_TRY does it for us. Thanks to Tom
Dobridge <dobridge@persimmon.com> for pointing this out.
Tue Oct 6 20:05:55 1998 Kirthika Parameswaran <kirthika@cs.wustl.edu>
* examples/Callback_Quoter/Supplier_i.cpp (unregister_callback):
removed a variable which was defined unnecessarily. Thanks to
David Levine for reporting this.
Tue Oct 6 17:16:46 1998 Jeff Parsons <jp4@cs.wustl.edu>
* tao/DynUnion_i.cpp: Another try at making VxWorks happy without
using memcmp in DynUnion_i_T.cpp. This should do it.
Tue Oct 6 13:01:24 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
* TAO_IDL/be/be_sunsoft.cpp: Fixed some problems with char and
octet constants. Thanks to Anders W. Tell
<anderst@toolsmiths.se> for reporting this.
Tue Oct 06 11:23:32 1998 David L. Levine <levine@cs.wustl.edu>
* performance-tests/Cubit/TAO/MT_Cubit/MT_Cubit_Test: added
support for server and client on different machines, using
-r option. It assumes that the user's shell is Bourne
shell-compatible. I'll try to fix that soon.
* performance-tests/Cubit/TAO/MT_Cubit/plot: plot high
priority in blue, low in light green.
Tue Oct 6 10:26:06 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
* orbsvcs/tests/EC_Multiple/EC_Multiple.cpp:
Dummy initialization for "observer_handler" to give compilers
some peace of mind about its use.
* orbsvcs/orbsvcs/Event/EC_Gateway.cpp:
Assigning an _var to a _ptr is ambiguous, we have to use .in().
Tue Oct 6 08:06:33 1998 Aniruddha Gokhale <gokhale@sahyadri.research.bell-labs.com>
* TAO_IDL/driver/drv_args.cpp:
Added a -Gi option to enable interpretive marshaling. More work
needs to be done here such that we can selectively generate
compiled or interpretive marshaling based on some pragmas.
* docs/compiler.html:
Added documentation for the new options for the IDl compiler.
Tue Oct 06 03:56:05 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
* TAO version 0.2.20 released.
Tue Oct 06 03:12:38 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
* TAO version 0.2.19 released.
Tue Oct 6 02:58:35 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
* docs/compiler.html: Updated documentation for the new Binary
Search operation lookup stratetgy.
Tue Oct 06 00:11:11 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
* TAO version 0.2.18 released.
Mon Oct 5 22:12:07 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
* orbsvcs/orbsvcs/Event/EC_Gateway.cpp:
Added some template instantiations.
* docs/Options.html:
* docs/configurations.html:
Added a few comments for the latest options.
Mon Oct 05 21:43:26 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
* TAO version 0.2.17 released.
Mon Oct 5 20:35:28 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
* orbsvcs/orbsvcs/Event/EC_Gateway.h:
* orbsvcs/orbsvcs/Event/EC_Gateway.cpp:
The IIOP Gateways were not preserving the remote supplier IDs
properly. The current implementation uses a map of
ProxyPushConsumer on the "local" EC, using a different entry for
each supplier ID the local consumers show interest in.
At run-time the events are dispatched to the corresponding entry
in the map.
A special consumer is used for all the other events.
* orbsvcs/orbsvcs/Event/Event_Channel.cpp:
Fixed a dead-lock during shutdown.
Also fixed some problems while updating the Observers; we held
the EC lock during the complete process, but it is fairly common
to make changes to the EC while the observers are beign updated.
* orbsvcs/tests/EC_Multiple/EC_Multiple.cpp:
Some improvements on shutdown.
* docs/releasenotes/TODO.html:
Updated the tasks corresponding to the changes in this ChangeLog
entry.
Mon Oct 5 21:16:53 1998 Kirthika Parameswaran <kirthika@cs.wustl.edu>
* examples/Callback_Quoter/Supplier_i.cpp (unregister_callback):
The code to perform the unregistration of the consumer was added.
Mon Oct 05 18:54:31 1998 Irfan Pyarali <irfan@cs.wustl.edu>
* orbsvcs/orbsvcs/Naming/CosNaming_i: Fixed the POA id generation
to take into account the name of the parent. Otherwise everyone
was using the same "namespace".
* performance-tests/Cubit/TAO/IDL_Cubit: Added the testing of
sequences of structs.
Mon Oct 5 18:07:38 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
* examples/Makefile: Changed the Makefile so that it'll now also
build the new Callback_Quoter test.
Mon Oct 5 18:15:31 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
* tests/Param_Test/Makefile:
* orbsvcs/tests/Logger/Makefile:
* orbsvcs/tests/Simple_Naming/Makefile:
* examples/Quoter/Makefile:
* examples/POA/Forwarding/Makefile:
* examples/POA/Generic_Servant/Makefile:
* orbsvcs/orbsvcs/Makefile:
* performance-tests/Cubit/TAO/IDL_Cubit/Makefile:
Removed the -Gc options for the IDL compiler, if wanted the
option can be added on the command line when invoking make, as:
$ make TAO_IDLFLAGS=-Gc
Mon Oct 5 17:29:14 1998 Jeff Parsons <jp4@cs.wustl.edu>
* tao/DynUnion_i.cpp:
* tao/DynUnion_i_T.cpp:
Put a preprocessor conditional around the case that
instantiates the longlong type of template class
in get_extractor(). Because of this, the memcmp in
DynUnion_i_T.cpp has been removed - no need for it
now and VxWorks and Chorus should still be happy.
Mon Oct 05 16:39:44 1998 Nanbor Wang <nanbor@cs.wustl.edu>
* tao/corba.h: Removed duplicated macro definitions that are
defined in try_macros.h.
* tao/try_macros.h (TAO_CATCH): Added ACE_UNUSED_ARG (VAR) for
this when TAO_USE_EXCEPTIONS and removed ACE_UNUSED_ARG (VAR)
when !TAO_USE_EXCEPTIONS.
* tao/Dyn{Any,Array,Enum,Sequence,Struct,Union}_i.cpp: Changed
exceptions CORBA::NO_MEMORY to CORBA::NO_MEMORY () to avoid
compilation errors when TAO_USE_EXCEPTIONS is enabled.
Mon Oct 05 16:13:48 1998 David L. Levine <levine@cs.wustl.edu>
* TAO version 0.2.16 released.
Mon Oct 05 15:37:26 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
* TAO version 0.2.15 released.
Mon Oct 5 14:56:03 1998 Kirthika Parameswaran <kirthika@cs.wustl.edu>
* examples/Callback_Quoter/Consumer_i.cpp (push):
Since I was checking whether the stock_value was greater
than the threshold desired, I changed the consumer's reaction
to selling shares rather than buying them.
Mon Oct 05 13:52:17 1998 David L. Levine <levine@cs.wustl.edu>
* tao/DynAnyC.cpp,DynArray_i.cpp,DynEnum_i.cpp,DynSequence_i.cpp,
DynStruct_i.cpp,DynUnion_i.cpp,DynUnion_i_T.cpp:
added ACE_LACKS_LONG_LONG_T support.
* orbsvcs/tests/EC_Multiple/EC_Multiple.cpp (print_priority_info):
use ACE_OS::getpid () instead of getpid ().
Mon Oct 5 11:28:02 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
* orbsvcs/orbsvcs/Event/Event_Channel.cpp:
MSVC++ does not like
auto_ptr<Foo> x = new Foo;
but it does like
auto_ptr<Foo> x (new Foo);
Thanks to Nanbor for catching this problem and commiting the
fix.
Mon Oct 5 10:47:52 1998 Aniruddha Gokhale <gokhale@sahyadri.research.bell-labs.com>
* TAO_IDL/be/be_visitor_operation/operation_ss.cpp:
Had to remove the code that Carlos had added to propagate the
exception from the _tao_skel_env to the _tao_env parameter. This
was necessary since we no longer use the _tao_skel_env parameter.
Mon Oct 5 07:54:21 EDT 1998 Aniruddha Gokhale <gokhale@sahyadri.research.bell-labs.com>
* TAO_IDL/be/be_visitor_operation/compiled_marshal.cpp:
There was a bug in the generated code. Thanks to David Levine
for sending me the bug report.
* TAO_IDL/be/be_visitor_operation/operation_ss.cpp:
TAO_IDL/be/be_visitor_interface/interface_ss.cpp:
We no longer need the _tao_skel_environment variable in the
skeletons. These modifications were necessary to maintain
support for both the compiled as well as interpretive
marshaling. The _is_a_skel now generates a proper
TAO_CHECK_ENV_RETURN_VOID statement.
Also made sure that unused local variables are not generated.
* TAO_IDL/be/be_visitor_operation/rettype_vardecl_ss.cpp
TAO_IDL/be_include/be_visitor_operation/rettype_vardecl_ss.h:
Added a new visitor for compiled marshaling for the generation
of return type variable in the server skeleton code.
* TAO_IDL/be/be_visitor_factory.cpp:
For compiled marshaling we now invoke a new visitor for the
return val variable in the skeleton. The reason we do this is
since the interpreted version uses an OBject_var.
* tao/{CurrentS, POAS, PolicyS}.cpp:
Since we no longer use the _tao_skel_environment, we had to make
the necessary modifications.
* tao/Server_Request.{h, cpp}:
The marshal method no longer takes in the _skel_env parameter
Sun Oct 4 19:48:25 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
* TAO_IDL/be/be_visitor_operation/operation_ss.cpp:
Exceptions were not beign transmitted from the server back to
the client. We need to rethink the use of two environments in
the skeleton.
Sun Oct 4 16:37:23 1998 Carlos O'Ryan <coryan@tango.cs.wustl.edu>
* orbsvcs/orbsvcs/Event/Event_Channel.h:
* orbsvcs/orbsvcs/Event/Event_Channel.cpp:
It is now possible to have several suppliers with the same ID on
the same Event Channel.
I also fixed a bug with the supplier reconnections: if a
consumer was filtering by source it wouldn't receive the events
if the supplier disconnected and connected again. Thanks to
Thomas Venturella <tventurell@mdc.com> for some his hints on how
to fix this.
Fixed some problems with exception handling and propagation.
* orbsvcs/tests/Makefile:
* orbsvcs/tests/EC_Basic/Makefile:
* orbsvcs/tests/EC_Basic/README:
* orbsvcs/tests/EC_Basic/run_test.pl:
* orbsvcs/tests/EC_Basic/EC_Basic.h:
* orbsvcs/tests/EC_Basic/EC_Basic.i:
* orbsvcs/tests/EC_Basic/EC_Basic.cpp:
Added a new test for the Event Channel, this will grow to become
the main regression test for the EC, at this point it only tests
the use of several suppliers with the same ID.
* docs/releasenotes/TODO.html:
Update the file.
Sun Oct 4 15:40:05 1998 Balachandra Natarajan <bala@lambada.cs.wustl.edu>
* Any.cpp
Anticipated fix for break in build. The TypeCode_ptr was not
completely qualified (as CORBA::TypeCode_ptr).
Sun Oct 04 08:40:12 1998 David L. Levine <levine@cs.wustl.edu>
* performance-tests/Cubit/TAO/MT_Cubit/Task_Client.cpp,client.cpp,
server.cpp,run_tests.pl: used IIOP instead of URL style obj
refs for maximum performance.
Sat Oct 3 20:20:14 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
* TAO_IDL/be/be_interface.cpp (gen_gperf_lookup_methods): Added
code to handle Binary Search operation lookup strategy. Not yet
tested with GPERF.
* tao/Operation_Table.cpp: Added class for Binary Search operation
lookup strategy. s
* TAO_IDL/be_include/be_codegen.h: New LOOKUP_STRATEGY enum for
Binary search.
* tao/Operation_Table.h (TAO_Active_Demux_OpTable): Added class
for Binary Search operation lookup strategy.
* TAO_IDL/be_include/be_interface.h (be_type): Added private
methods to generate code for binary searh and linear search. Not
yet tested with GPERF. Doesnt harm using the old operation lookup
strategies.
* TAO_IDL/include/idl_global.h (class IDL_GlobalData): Renamed
perfect_hasher by gperf_path. gperf is going to be used for binary
search and linear search as well. So it is not specific to perfect
hashing.
* TAO_IDL/driver/drv_args.cpp (DRV_parse_args): Changed the option
<-H dynamic> to <-H dynamic_hash>. Added options
<-H perfect_hash>, <-H binary_search> and <-H linear_search>. Do
NOT try these *_search options yet. It is yet to be tested with
GPERF. Also extended testing for GPERF's existance in the case of
Binary Search strategy also.
Sat Oct 3 19:35:05 1998 Balachandra Natarajan <bala@lambada.cs.wustl.edu>
* Any.cpp
Fix for memeory leaks in extraction.
Sat Oct 3 15:16:05 1998 Marina Igorevna Spivak <marina@mambo.cs.wustl.edu>
* orbsvcs/tests/Simple_Naming/client.cpp
* orbsvcs/tests/Simple_Naming/README
* orbsvcs/tests/Simple_Naming/run_test.pl
Added destroy test to the set of tests already there.
Sat Oct 03 09:54:14 1998 David L. Levine <levine@cs.wustl.edu>
* performance-tests/Thruput/Orbix/Makefile: removed
Quantify/Purify relics.
* performance-tests/Thruput/Orbix/ttcp_decl.h,ttcp_i.cpp,
Client.cpp,Srv_Main.cpp: replace USE_QUANTIFY with
ACE_HAS_QUANTIFY.
* TAO_IDL/be/be_visitor_scope.cpp (next_elem): initialized
local "node" to 0 to avoid g++ warning about possible
uninitialized used.
Fri Oct 2 23:03:20 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
* docs/releasenotes/ec.html:
Added an entry to explain the differences between the TAO event
service and the standard CORBA event service.
Fri Oct 2 20:16:35 1998 Jeff Parsons <jp4@cs.wustl.edu>
* tao/DynAnyC.cpp:
David got a couple of warnings with Dec cxx that led me to
some lines that I had commented out to find a bug and
forgot to uncomment.
Fri Oct 2 20:02:42 1998 Jeff Parsons <jp4@cs.wustl.edu>
* TAO_IDL/be/be_sunsoft.cpp:
IDL compiler will now generate correct code for
a constant char that is an escape sequence.
Fri Oct 02 16:49:59 1998 David L. Levine <levine@cs.wustl.edu>
* performance-tests/Cubit/TAO/MT_Cubit/Task_Client.{h,cpp},
client.cpp,server.cpp: replaced NO_ACE_QUANTIFY with
ACE_HAS_QUANTIFY.
* performance-tests/Cubit/TAO/MT_Cubit/MT_Cubit_Test:
kill with -15 instead of -1, because HUP no longer
kills TAO processes.
Fri Oct 2 16:09:24 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
* tao/IIOP_Object.i (use_locate_requests): Changed the 1s to 0s so
they would work correctly. Thanks to Michael Kircher
<mlkirche@trick.informatik.uni-stuttgart.de> for reporting this.
Fri Oct 02 09:02:54 1998 Nanbor Wang <nanbor@cs.wustl.edu>
* TAO_IDL/be/be_visitor_operation/operation_ss.cpp: Removed an
unused local variable, not the one Andy just added. ;)
Fri Oct 2 08:18:28 1998 Aniruddha Gokhale <gokhale@sahyadri.research.bell-labs.com>
* TAO_IDL/be/be_visitor_operation/operation_ss.cpp:
There was a local variable that got removed by mistake while
removing all unused locals. It has been reincluded.
Thu Oct 1 23:31:34 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
* Updated the dependencies in all the Makefiles due to the DynAny
changes.
Thu Oct 1 22:05:39 1998 Jeff Parsons <jp4@cs.wustl.edu>
* tao/DynAny.pidl:
* tao/InconsistentTypeCode.pidl:
* tao/DynAnyC.{h,i,cpp}:
* tao/DynAnyS.cpp:
* tao/DynAny_i.{h,cpp}:
* tao/DynArray_i.{h,cpp}:
* tao/DynEnum_i.{h,cpp}:
* tao/DynSequence_i.{h,cpp}:
* tao/DynStruct_i.{h,cpp}:
* tao/DynUnion_i.{h,cpp}:
* tao/DynUnion_i_T.{h,cpp}:
* tao/InconsistentTypeCode.{h,cpp}:
* tao/corba.h:
* tao/ORB.{h,i,cpp}:
* tao/POA_CORBA.h:
* tao/Makefile:
* tao/TAO.dsp:
All the DynAny stuff, plus the necessary additions to
other TAO files, plus mods to Unix Makefile and VC
project file. Builds were successful using VC5, Sun cc
and GNU g++.
Thu Oct 01 21:21:19 1998 Nanbor Wang <nanbor@cs.wustl.edu>
* TAO_IDL/be/be_visitor_operation/operation_ss.cpp
(gen_raise_exception):
(gen_check_exception):
(gen_demarshal_params): Removed unused local variable(s) to
avoid warnings from VC5.
Thu Oct 1 20:51:39 1998 Nanbor Wang <nanbor@cs.wustl.edu>
* TAO_IDL/be/be_visitor_interface/cdr_op_cs.cpp: Added trailing
return statements to supress warnings from g++.
Thu Oct 1 16:03:55 1998 Darrell Brunsch <brunsch@cs.wustl.edu>
* performance-tests/Cubit/TAO/IDL_Cubit/client.dsp:
* performance-tests/Cubit/TAO/IDL_Cubit/server.dsp:
* performance-tests/Cubit/TAO/IDL_Cubit/collocation_test.dsp:
Removed orbsvcs reference.
Thu Oct 01 14:22:35 1998 Nanbor Wang <nanbor@cs.wustl.edu>
* tao/CDR.i (operator<<): Changed to use TAO_CHECK_ENV for Any,
Object and TypeCode operations and added trailing return
statement to avoid warnings from MSVC.
* TAO/TAO_IDL/tao_idl.dsp:
* TAO/TAO_IDL/tao_idl_static.dsp: Updated project based on Andy's
changes. (by Darrell.)
* TAO/TAO_IDL/be/be_visitor_array/any_op_cs.cpp:
* TAO/TAO_IDL/be/be_visitor_enum/any_op_cs.cpp:
* TAO/TAO_IDL/be/be_visitor_exception/any_op_cs.cpp:
* TAO/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp:
* TAO/TAO_IDL/be/be_visitor_structure/any_op_cs.cpp:
* TAO/TAO_IDL/be/be_visitor_union/any_op_cs.cpp: Added trailing
"return 0;" for generated code for operator>>= of these to avoid
MSVC warnings.
Thu Oct 1 12:42:58 EDT 1998 Aniruddha Gokhale <gokhale@sahyadri.research.bell-labs.com>
* TAO_IDL/be/be_factory.cpp
/be_include/be_factory.h
/be_stream
Renamed to be_factory.{h, cpp} to be_stream_factory.{h, cpp},
respectively. We removed the visitor factory related classes and
code from these files and created new files.
* TAO_IDL/be/be_interpretive.cpp
/be_include/be_interpretive.h:
Removed. Instead we now have the be_visitor_factor.{h, cpp} file
described next.
* TAO_IDL/be/be_visitor_factory.cpp
/be_include/be_visitor_factory.h:
Added the abstract base class visitor factory called
"TAO_Visitor_Factory" that provides the "make_visitor" factory
method. Special concrete visitor factories called
"TAO_Interpreted_Visitor_Factory",
"TAO_Compiled_Visitor_Factory", and "TAO_Common_Visitor_Factory"
are now available as Singleton concrete factories.
The TAO_Common_Visitor_Factory is never used directly by the
client (i.e., the tao_cg object). There are several visitors
that are common to both the interpretive as well as the compiled
approaches e.g., interface code generation, any operators,
etc. Thus, the two primary factories (interpretive or compiled)
will internally delegate code generation to the common factory
based on the state.
* TAO_IDL/be/be_codegen.cpp
/be_include/be_codegen.h:
Removed a large number of unused enumerations for the
CG_STATE. Also, renamed all the *DOCALL* states to *INVOKE*
states to make it look generic and applicable to both
interpretive as well as compiled marshaling.
Added a new method called "config_visitor_factory (void)". This
allows the TAO_CODEGEN Singleton object to be strategized with
the desired visitor factory which can be either the interpretive
or the compiled visitor factory, but never the common
factory. The common factory gets invoked internally by the other
two factories as described before. This strategy is fixed based on
the command line option provided to the compiler.
We no longer create a new factory and own it. Instead, as
described before, we simply hold a pointer to the abstract base
factory. This is initialized to either the interpretive or
compiled factory objects using the config_visitor_factory
method.
* TAO_IDL/be_include/be.h:
Made the necessary changes due to the addition and renaming of
files described above.
* TAO_IDL/be/be_produce.cpp:
We call the config_visitor_factory method on our TAO_CODEGEN
singleton, strategy object. It will configure itself with the
right visitor factory.
* TAO_IDL/be/be_visitor_argument.cpp
/be_include/be_visitor_argument.h:
Added new include *.{h, cpp} files described next.
* TAO_IDL/be/be_visitor_argument/compiled_marshal_cs.cpp
/compiled_marshal_ss.cpp
/pre_invoke_cs.cpp
/be_include/be_visitor_argument/compiled_marshal_cs.h
/compiled_marshal_ss.h
/pre_invoke_cs.h:
New files with new visitors added for compiled marshaling
support. The compiled_marshal_{cs,ss}.{h,cpp} has visitors that
generates the code for marshaling and demarshaling parameters
using the CDR <<, >> operators. The pre_invoke_cs is a visitor
that inherits from the pre_docall_cs. Its sole purpose is to
override the visit_interface and visit_interface_fwd
methods. The reason we need to do this is because for compiled
marshaling, we do not need to deal with the base
CORBA_Object_ptr types and do the necessary _narrow inside the
stub/skel. This is all done in the code for the <<, >>
operators.
* TAO_IDL/be/be_visitor_argument/docall_cs.cpp
/pre_docall_cs.cpp
/marshal_ss.cpp
/post_upcall_ss.cpp
/upcall_ss.cpp:
For all the variable sized types, especially the out parameters,
we were declaring the _var, _out, and the ptr type for the
parameter. We no londer need to instantiate so many
variables. We can deal with just the _var types. All actions
including memory allocation, passing it to the do_static_call or
the upcall, is handled using the _var parameter. This reducs
code size as well as the activation record size since the number
of local variables is significantly reduced.
* TAO_IDL/be/be_visitor_argument/vardecl_ss.cpp
/be_include/be_visitor_argument/vardecl_ss.h:
We define an addition class called
be_compiled_visitor_args_vardecl_ss that inherits from the base
be_visitor_args_vardecl_ss. Its only purpose is to override the
base class's visit_interface methods. The overridden methods
avoid the generation of the extra local variables of the
CORBA::Object_ptr type.
* TAO_IDL/be/be_visitor_array/any_op_cs.cpp:
TAO_IDL/be/be_visitor_enum/any_op_cs.cpp:
TAO_IDL/be/be_visitor_structure/any_op_cs.cpp:
The code for <<=, and >>= now uses the TAO_TRY macros so that
they can work with real C++ exceptions also.
This is not yet done for all types since this is under testing.
* TAO_IDL/{be, be_include}/be_visitor_enum/enum_ch.{h, cpp}
TAO_IDL/{be, be_include}/be_visitor_exception/cdr_op_cs.{h, cpp}
TAO_IDL/{be, be_include}/be_visitor_exception/exception_ctor.{h, cpp}
TAO_IDL/{be, be_include}/be_visitor_interface/cdr_op_cs.{h, cpp}:
TAO_IDL/{be, be_include}/be_visitor_operation/argument.{h, cpp}:
TAO_IDL/{be, be_include}/be_visitor_union/cdr_op_cs.{h, cpp}:
Modifications were necessary due to the change in the
"post_process" signature and semantics.
* TAO_IDL/be/be_visitor_interface/interface.cpp:
Removed some commented-out code.
* TAO_IDL/be/be_visitor_interface/interface_ss.cpp:
The skeleton code now uses the TAO_TRY macros for seamless exception
support between the real C++ exceptions and the alternate mapping.
* TAO_IDL/be/be_visitor_operation.cpp
/be_include/be_visitor_operation.h:
Added new include *.{h, cpp} files described below.
* TAO_IDL/be/be_visitor_operation/operation.cpp
TAO_IDL/be/be_visitor_operation/argument_invoke.cpp
TAO_IDL/be/be_visitor_operation/argument_marshal.cpp
TAO_IDL/be/be_visitor_operation/compiled_marshal.cpp
TAO_IDL/be/be_visitor_operation/rettype_preinvoke_cs.cpp
TAO_IDL/be/be_visitor_operation/rettype_return_cs.cpp
TAO_IDL/be/be_visitor_operation/rettype_marshal_ss.cpp
TAO_IDL/be_include/be_visitor_operation/operation.h
TAO_IDL/be_include/be_visitor_operation/argument_invoke.h
TAO_IDL/be_include/be_visitor_operation/argument_marshal.h
TAO_IDL/be_include/be_visitor_operation/compiled_marshal.h
TAO_IDL/be_include/be_visitor_operation/rettype_preinvoke_cs.h:
For all the variable sized return types we were declaring the
_var, _out, and the ptr type for the parameter. We no londer
need to instantiate so many variables. We can deal with just the
_var types. All actions including memory allocation, passing it
to the do_static_call is handled using the _var parameter. This
reduces code size as well as the activation record size since
the number of local variables is significantly reduced.
Some other visitors such as the asrgument_invoke and
argument_marshal are needed to generate the right number of &&
operator at the right place in the large "if" statement that is
generated for marshaling or unmarshaling parameters. This is
useful only for the compiled approach.
The base class operation visitor was added to the operation.{h,
cpp} files. It provides a number of helper classes used commonly
by inherited visitors.
* TAO_IDL/be/be_visitor_operation/rettype_vardecl_ss.cpp:
TAO_IDL/be_include/be_visitor_operation/rettype_vardecl_ss.h:
Define a new class for compiled marshaling approach that
overrides the visit_interface method over its base class. This
way we avoid generation of extra variables.
* TAO_IDL/{be, be_include}/be_visitor_operation/operation_ch.{h,cpp}
TAO_IDL/{be, be_include}/be_visitor_operation/operation_cs.{h,cpp}
TAO_IDL/{be, be_include}/be_visitor_operation/operation_sh.{h,cpp}
TAO_IDL/{be, be_include}/be_visitor_operation/operation_ss.{h,cpp}:
All these now inherit from the base operation visitor.
For the client side stubs (operation_cs.{h, cpp}) and server
side skeletons (operation_ss.{h, cpp}), we now factor out all
the code that is common to both the interpreted and compiled
stubs/skels. Thus, the visit_operation method is now a template
method. It calls operations that are implemented only by
derived classes. These methods e.g., gen_pre_stub_info,
gen_marshal_and_invoke, and others will generate the code that
is different for the interpreted vs compiled approaches..
We define derived classes called
"be_interpretive_visitor_operation_cs" and
"be_compiled_visitor_operation_cs" (similarly for the skeletons)
that provide the implementation for the pure virtual methods
called by the template method "visit_operation".
* TAO_IDL/be/be_visitor_scope.cpp
/be_include/be_visitor_scope.cpp:
Added a new "pre_process" method. Both the pre_process and
post_process methods now take the "be_decl *" as an
argument. This was the change made to the post_process.
In addition, post_process is always invoked irrespective of the
node being the last one in the scope or not.
To test if the node being processed is the last one, we have
added a new method called "last_node" returning a boolean
value. Similarly, we have added "next_elem" method that gives us
our successor and the "elem_number" that gives us our number in
the list.
* TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp:
For bounded vs unbounded strings, we generate different code for
the CDR operators.
I need to check if this policy is strictly followed for all
aggregate types that can have a string member.
* TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_ch.cpp:
For sequences of arrays, there were some weird problems using
the ACE_reinterpret_cast which is now fixed.
* TAO_IDL/be/be_visitor_typedef/typedef.cpp:
Removed lots of cases in the switch statement since we removed
those enumerations from the CG_STATE of the TAO_CODEGEN object.
* TAO_IDL/Makefile:
ran make depend.
* TAO_IDL/driver/drv_args.cpp:
ACEified the code.
Updated the usage_error message with new command line options.
Handled the new options.
-Gc - generate compiled marshaled code
-Ge - enable C++ exception support (unimplemented)
-Gt - generate optimized typecodes (unimplemented)
-Sa - suppress any operators
-St - suppress typecode generation
The default is to always generate all the Any operators,
TypeCodes and to use the Interpretive marshaling.
* TAO_IDL/include/idl_global.h
/utils/utl_global.cpp:
Added a number of mutator and accesor methods for the newly
added command line options.
* performance_tests/Cubit/TAO/IDL_Cubit/Cubit_Client.cpp:
Commented out the RTI and the Union tests since the CDR
operators are not yet done for the unions.
* tao/Any.{h, i}
tao/ORB.{h, i}
tao/Object.{h, i}
tao/Typecode.{h, i}:
The parameter to the copy ctor and assignment operator of the
_out class is now "const". This resolves the weird warnings we
were getting about a temporary being created. We were also
required to instantiate the _out type explicitly to overcome
this. However, we no londer need to write this non-compliant
code.
* tao/CDR.i:
Code for <<, >> operators for objref, typecode, and Anys had a
bug.
* tao/corba.h:
Moved the inclusion of the try_macros.h before the CDR.h since
we us the macros in the code
Thu Oct 1 11:18:35 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
* examples/Simple/bank/AccountManager_i.cpp: Removed the unneeded
';' at the end of the #pragmas. Thanks to Margherita Vittone
Wiersma <vittone@fndaub.fnal.gov> for reporting this.
Thu Oct 01 10:39:44 1998 David L. Levine <levine@cs.wustl.edu>
* tao/ORB_Core.cpp (input_cdr_dblock_allocator): wrapped
break following return with ACE_NOTREACHED, in two places.
* orbsvcs/orbsvcs/Event/Event_Channel.cpp: removed
ACE_Malloc<ACE_LOCAL_MEMORY_POOL, ACE_SYNCH_MUTEX>
instantiation because it's now in tao/ORB_Core.cpp.
Thu Oct 01 00:17:17 1998 Irfan Pyarali <irfan@cs.wustl.edu>
* tao/ORB_Core.h: Removed template specialization for
INET_Addr.hash(). Also changed/fixed explicit template
instantiations.
|