summaryrefslogtreecommitdiff
path: root/TAO/PMBChangeLog
blob: 1957ebeea872cd24db912830868f42c2659157af (plain)
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
Thu Mar 20 12:34:24 2003  Chris Cleeland  <cleeland_c@ociweb.com>

	* all: First merge back to OCI.

Thu Mar 20 12:17:23 2003  Chris Cleeland  <cleeland_c@ociweb.com>

	* tao/Strategies/DIOP_Transport.cpp (handle_input_i):
	* orbsvcs/orbsvcs/PortableGroup/UIPMC_Transport.cpp
	  (handle_input_i):

	  Update to use new parsing and message processing methods
	  consistent with PMB changes.

	* tao/Transport.cpp (process_queue_head): Corrected a possible memory
	  leak where, if process_parsed_messages returned with an error,
	  the TAO_Queued_Data instance wouldn't be released.

Tue Mar 18 14:57:07 2003  Chris Cleeland  <cleeland_c@ociweb.com>

	* VERSION:
	* ChangeLog:
	* tao/tao.mpc:
	* tao/Version.h:
	* tao/IIOP_Transport.cpp:
	* tao/MCAST_Parser.cpp:
	* tao/RTCORBA/Linerar_Priority_Mapping.cpp:
	* tao/RTCORBA/RT_ORBInitializer.cpp:
	* tao/RTCORBA/RT_ORBInitializer.h:
	* tao/RTCORBA/RT_ORB_Loader.cpp:
	* tao/RTCORBA/RT_Protocols_Hooks.cpp:
	
	  Merged in changes from TAO 1.3.1.  The actual tag for the merge
	  was pmb_branch_mainline_mergeout_1.  The command was

	  $ cvs update -jpmb_branch_start -jpmb_branch_mainline_mergeout_1

	  after manually determining which files needed updates.

Mon Mar 17 11:09:00 2003  Chris Cleeland  <cleeland_c@ociweb.com>

	* tao/GIOP_Message_Base.cpp (check_for_valid_header): Optimized
	  implementation.

	* tao/GIOP_Message_Base.* (header_length): Moved to inline for
	  optimization.

	* tao/GIOP_Message_State.cpp (TAO_Debug_Msg_Emitter_Guard):
	  Improved implementation so it didn't make copies of the message
	  even when it was never going to output anything due to debug
	  level being lower than the value that would cause debug output.

	* tao/GIOP_Message_State.cpp (take_values_from_message_block):
	* tao/GIOP_Message_State.cpp (set_version_info_from_buffer):
	* tao/GIOP_Message_State.cpp (set_byte_order_info_from_buffer):
	* tao/GIOP_Message_State.cpp (set_payload_size_from_buffer):

	  Removed use of TAO_Debug_Msg_Emitter_Guard.

	* tao/GIOP_Message_State.inl (set_payload_size_from_buffer):

	  Moved to inline file.

	* tao/Incoming_Message_Queue.h (TAO_Incoming_Message_Queue):
	  Changed name of member 'queued_data_' to 'last_added_' to be
	  more clear about what the pointer actually points to.

	  Added documentation that describes the structure of the linked
	  list so that hopefully future maintainers don't have to go
	  through the same learning curve I did.

	* tao/Incoming_Message_Queue.*: Updates to reflect last_added_
	  member name change.

	* tao/Incoming_Message_Queue.cpp (dequeue_head): Add check to not
	  allow dequeuing when size is zero, plus we now zero-out the
	  last_added_ pointer after we've dequeued the last item in the
	  list.

	* tao/Incoming_Message_Queue.cpp (clone_mb_nocopy_size): Fix
	  setting and copying of flags on the message and data blocks so
	  that the DONT_DELETE flag specifically doesn't get copied.  This
	  cured a HUGE memory leak that was causing substantial
	  performance problems.

	* tao/Incoming_Message_Queue.cpp (make_uncompleted_message):
	* tao/Incoming_Message_Queue.cpp (make_completed_message):

	  Cache values used over and over again within these methods such
	  as header and message block lengths

	* tao/Transport.cpp (handle_input_i):

	  Added flag noting that we enqueued a message.

	  Changed how re-reading is performed; see entry for
	  try_to_complete for information.

	  Used ACE_CDR::grow to grow the uncompleted_message message block
	  once the payload size is known.  This insures that the growth
	  happens with proper alignment constraints.

	* tao/Transport.* (try_to_complete): Added this method which
	  tries to complete whatever partial message is held in
	  uncompleted_message_.  The difference between doing this and
	  simply revisiting the top of handle_input_i is that this will
	  only try to read enough to complete the message rather than also
	  read another partial.

	* tao/Transport.cpp (process_queue_head): Added check to insure
	  that we don't try to do any processing when there's nothing in
	  the queue.  Also, removed old code leftover from when the
	  incoming queue could have partial GIOP messages in it.  Finally,
	  insured that the return value matched previous requirements.
	  

Thu Mar  6 15:27:14 2003  Chris Cleeland  <cleeland_c@ociweb.com>

	* tao/Incoming_Message_Queue.cpp: Removed Shattering Encapsulation
	  hack around ace/Message_Block.h inclusion to make this link
	  properly on VC6.

	* tao/GIOP_Message_State.cpp: Moved initialization of
	  TAO_Debug_Msg_Emitter_Guard::MAGIC_LENGTH outside the class
	  declaration.

Wed Mar  5 13:08:37 2003  Chris Cleeland  <cleeland_c@ociweb.com>

	* tao/GIOP_Message_Generator_Parser_Impl.inl (check_revision):
	  Modified to only explicitly allow versions of GIOP that TAO
	  supports, and no others.  Note that this change means that
	  whenever a new version of GIOP gets added to TAO, this function
	  must be updated, too.  Hopefully that won't happen so often that
	  this becomes horribly burdensome.  Thanks to Chad Elliott and
	  Paul Calabrese for ideas in getting this right.

	* tao/Incoming_Message_Queue.* (make_uncompleted_message):

	  This now behaves similar to make_completed_message, i.e., it
	  allocates the message block held in TAO_Queued_Data and advnaced
	  the rd_ptr past the bytes it consumes.

	* tao/Incoming_Message_Queue.cpp: Eliminated hacks on
	  ACE_Message_Block and replaced with functions
	  clone_mb_nocopy_size() and copy_mb_span() that utilize ONLY the
	  public API.  make_completed_message() and
	  make_uncompleted_message() now use these.

	* tao/Transport.cpp (handle_input_i): Enlarged the buffer size and
	  replaced the magic number for the maximum number of re-read
	  attempts with the manifest constant
	  TAO_MAX_TRANSPORT_REREAD_ATTEMPTS, now defined in orbconf.h.

	  Changed uses of make_uncompleted_message() to be consistent with
	  changes outlined above.

	  Corrected a bug where, upon re-reading after completely emptying
	  the stack-allocated message block, I forgot to reset the
	  rd_ptr/wr_ptr in the message block.

	* tao/orbconf.h: Added new manifest constant
	  TAO_MAX_TRANSPORT_REREAD_ATTEMPTS.  Documentation is in the file.

Wed Feb 26 21:44:34 2003  Chris Cleeland  <cleeland_c@ociweb.com>

	* TAO/tao/GIOP_Message_Base.cpp:

	  Eliminate parse_incoming_messages(), missing_data(),
	  extract_next_message(), consolidate_node(),
	  consolidate_fragments(), get_message_data(), make_queued_data().

	  Add new methods set_queued_data_from_message_header() and
	  check_for_valid_header().

	* TAO/tao/GIOP_Message_Base.h:

	  Eliminate #if0 parse_incoming_messages(), missing_data(),
	  extract_next_message(), consolidate_node(),
	  consolidate_fragments(), get_message_data(), and
	  make_queued_data() declarations.

	  Add declarations for set_queued_data_from_message_header() and
	  check_for_valid_header().

	  Make message_type() static.

	* TAO/tao/GIOP_Message_Generator_Parser_Impl.inl:
	
	  Reimplement check_revision() to be exact about which GIOP
	  revisions are okay.  This is different from before where it
	  loosely assumed that everything was valid unless it want higher
	  than a particular range.

	* TAO/tao/GIOP_Message_List.cpp:

          Remove parse_incoming_messages() thru consolidate_fragments();
          remove make_queued_data().

          Add set_queued_data_from_message_header() and
          check_for_valid_header().

	* TAO/tao/GIOP_Message_Lite.h:

          Remove declarations for parse_incoming_messages() thru
          consolidate_fragments(); remove make_queued_data().

          Add declarations for set_queued_data_from_message_header() and
          check_for_valid_header().

	* TAO/tao/GIOP_Message_State.cpp:

          Add TAO_Debug_Message_Emitter_Guard class within the compilation
          unit.

          Change CTOR not to use the 2nd argument.

          Change CTOR not to initialize this->base_with the 2nd arg.

          Add take_values_from_message_block().

          Remove parse_magic_bytes(), parse_message_header_i(),
          parse_message_header().

          Rename get_version_info() to set_version_info_from_buffer();
          change argument type to 'const char*'.

          Rename get_byte_order_info() to set_byte_order_info_from_buffer();
          change argument type to 'const char*'.

          Rename get_payload_size() to set_payload_size_from_buffer();
          change argument type to 'const char*'.

          Change argument type for read_ulong() to 'const char*'.

	* TAO/tao/GIOP_Message_State.h:

          Add default value for CTOR arguments so we don't have to pass
          them.

          Add declaration for take_values_from_message_block().

          #if0 parse_message_header() declaration.

          Add documentation for byte_order().

          Add new GIOP information accessors: giop_version(),
          more_fragments(), and message_type().

          #if0 declaration for parse_message_header_i() and
          parse_magic_bytes().

          Rename delcarations for get_version_info(), get_byte_order_info(),
          and get_payload_size().

          #if0 base_ member variable.

	* TAO/tao/GIOP_Message_State.inl:

          Add definitions for giop_version(), more_fragments(), and
          message_type().

	* TAO/tao/Incoming_Message_Queue.cpp:

          Add #include for ace/Message_Block.h, but shatter encapsulation
          and effectively extend its interface so that we can clone spans of
          message blocks.

          Modify copy_tail() to use new TAO_Queued_Data member names.

	* TAO/tao/Incoming_Message_Queue.cpp (class TAO_Queued_Data):

          Update CTORs to initialize new this->current_state_ data member.

          Add new make_uncompleted_message(), ACE_Message_Block hack
          "extensions", make_completed_message().

          Rename get_queued_data() to make_queued_data().

	* TAO/tao/Incoming_Message_Queue.h:

          Changed #include <Pluggable_Messaging_Utils.h> to #include
          <Pluggable_Message.h>

          Documentation for is_tail_complete() and is_head_complete() and
          is_tail_fragmented().

          #if0 get_node().

	* TAO/tao/Incoming_Message_Queue.h (class TAO_Queued_Data):

          Make CTORs protected so creation can only go through new factory
          methods, i.e., make_completed_message() and
          make_uncompleted_message().

          Add new factory methods make_completed_message() and
          make_uncompleted_message().

          Add release() method [in addition to static of same name].

          Add explicit definition of various states and a member to hold the
          current state (this->current_state_).

          Rename this->missing_data_ flag/value with
          this->missing_data_bytes_ count.

          Documentation for this->byte_order_.

	* TAO/tao/Incoming_Message_Queue.inl:

          Replace uses of this->missing_data_ with
          this->missing_data_bytes_.

          #if0 get_node().

          Add release() method.

	* TAO/tao/Pluggable_Message.h:

          #if0 parse_incoming_messages() through consolidate_fragments().

          Add declarations for check_for_valid_header() and
          set_queued_data_from_message_header().

	* TAO/tao/Transport.cpp:

          Add #include <ace/Min_Max.h>

          Add uncompleted_message_ to initialization list.

          Modify what happens when reading in handle_input_i():

          - number_of_read_attempts is how many times we'll try to read
          again to complete a message before we give up.

          - read_from_the_connection label added

          - correct 1st argument to this->recv() to be wr_ptr() rather than
          rd_ptr().

          - lots of changes that are substantially documented in the code.

          #if0 parse_consolidate_messages(), parse_incoming_messages(),
          missing_data(), consolidate_message(), consolidate_fragments(),
          consolidate_message_queue(), consolidate_extra_messages(), and
          make_queued_data().

	* TAO/tao/Transport.h:

          #if0 declarations for parse_consolidate_messages(), parse_incoming_messages(),
          missing_data(), consolidate_message(), consolidate_fragments(),
          consolidate_message_queue(), consolidate_extra_messages(), and
          make_queued_data().

          Add this->uncompleted_message_ data member.

	* TAO/tao/Strategies/DIOP_Transport.cpp:

          Change 1st arg of this->recv() in handle_input_i() to wr_ptr()
          from rd_ptr().

	* TAO/tao/Strategies/SHMIOP_Transport.cpp:

          #if0 consolidate_message().

	* TAO/tao/Strategies/SHMIOP_Transport.h:

          #if0 declaration for consolidate_message().

	* TAO/tests/AMI/run_test.pl:

          Increase default number of iterations from 1 to 10000.  Earlier
          versions of the PMB changes succeeded just fine with low numbers
          of iterations, but began to fail miserably when the number of
          iterations climbed.

	* TAO/tests/BiDirectional/run_test.pl:

          Added level 10 debug.

	* TAO/tests/InterOp-Naming/INS_test_client.cpp:

          Changes that don't appear to be related in any way to PMB...