summaryrefslogtreecommitdiff
path: root/TAO/ChangeLog_bug_575
blob: e9c10a75b0eef240bf31ad727ece55653aaab082 (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
Mon Jun 25 07:54:31 2001  Balachandran Natarajan  <bala@cs.wustl.edu>

	* tao/* : Merged the files from the main branch.

Mon Jun 25 07:45:38 2001  Balachandran Natarajan  <bala@cs.wustl.edu>

	* Created this file.

Fri Jun 22 17:00:38 2001  Balachandran Natarajan  <bala@cs.wustl.edu>

	* tao/LIST_OF_TODO: Updated the list of TODO's.

Mon Jun 18 13:31:38 2001  Balachandran Natarajan  <bala@cs.wustl.edu>

	* tao/Asynch_Reply_Dispatcher.cpp (dispatch_reply):
	* tao/Synch_Reply_Dispatcher.cpp:
	* tao/GIOP_Message_Base.cpp:
	* tao/Transport.cpp:
	* tao/DynamicInterface/DII_Reply_Dispatcher.cpp: Fixed warnings in
	  g++ builds.

Sat Jun 17 17:46:23 2001  Balachandran Natarajan  <bala@cs.wustl.edu>

	This set of changes comes with complete revamping of the previous
	design. The flaws with the previous design were as follows
	(1) We were unnecessarily penalising large data blocks. We were
	    trying to read a particular size of data till the data was
	    completely removed from the socket. This was totally
	    ridiculous because we were doing more reads than required.

	(2) The message block that was constructed on the stack with a
	    buffer from stack never did what we wanted. It was allocating
	    a data block on the heap and was thus spoiling whatever
	    optimization that we had tried putting in.

	(3) The incoming message Queue is now managed by the TAO_Transport
	    object instead of the GIOP classes.

	* tao/GIOP_Message_Base.cpp:
	* tao/GIOP_Message_Base.h: Removed the references to the incoming
	  message queue. Implemention for two methods missing_data () and
	  byte_order (). Added an extra argument to the methods
	  process_request_message () and process_reply_message (). Used
	  the incoming message block to create a input CDR with the
	  DONT_DELETE flag so that the data block is not deleted after
	  request processing.

	* tao/GIOP_Message_State.cpp: Removed the inclusion of
	  Transport.h.

	* tao/Incoming_Message_Queue.h:
	* tao/Incoming_Message_Queue.cpp:
	* tao/Incoming_Message_Queue.inl: Added an argument to the
	  add_message (). Further the implementation of add_message () has
	  changed a bit. It now adds only a new message to the queue. It
	  doesn't modify a half filled queue. The TAO_Transport object
	  does that job. So declared the TAO_Transport as the friend class
	  of the Incoming_Message_Queue.

	  Changed the name of the methods complete_message () as
	  is_complete_message (). Removed the methods current_message ()&
	  current_byte_order ().

	  Added a new method copy_message () which copies messages into
	  the half empty nodes.

	  Added a method wr_ptr () to access the write pointer of the tail
	  node that has halfempty message.

	* tao/Transport.cpp:
	* tao/Transport.h: The Incoming Message Queue is now managed by
	  this class. Added the following methods
	  - missing_data ()
	  - parse_incoming_messages ()
	  - check_message_integrity ()
	  - consolidate_message ()
	  - conslodate_message_queue ()

	* tao/Pluggable_Messaging.h: Added two new virtual functions
	  missing_data () and byte_order ().

	* tao/ORB_Core.h:
	* tao/ORB_Core.cpp:
	* tao/ORB_Core.i: Added an accessor for the locking_strategy used
	  for the CDR blocks.

	* tao/Synch_Reply_Dispatcher.cpp:
	* tao/Asynch_Reply_Dispatcher.cpp:
	* tao/DynamicInterface/DII_Reply_Dispatcher.cpp: Changed the
	  exchange_data_block () to clone_from () which is a new method in
	  ACE_InputCDR.

	* tao/LIST_OF_TODO: Updated the list

Sat Jun 16 15:49:23 2001  Balachandran Natarajan  <bala@cs.wustl.edu>

	* tao/Any.cpp:
	* tao/Asynch_Reply_Dispatcher.cpp:
	* tao/CDR.cpp:
	* tao/CDR.h:
	* tao/CDR.i:
	* tao/GIOP_Message_Lite.cpp:
	* tao/IIOP_Profile.cpp:
	* tao/Invocation.cpp:
	* tao/ORB.cpp:
	* tao/Pluggable_Messaging_Utils.cpp:
	* tao/Synch_Reply_Dispatcher.cpp:
	* tao/TAO_Server_Request.cpp:
	* tao/DynamicInterface/DII_Reply_Dispatcher.cpp: Integrated some
	  of the changes from the main trunk in this branch.

Wed Jun 13 17:55:24 2001  Balachandran Natarajan  <bala@cs.wustl.edu>

	* tao/Incoming_Message_Queue.cpp:
	* tao/Incoming_Message_Queue.inl: Fixed a bad way to use the tail
	  of the circular linked list. This is now replaced by the size of
	  the linked list. This fixes quite a few errors.

	* tao/Transport.cpp: On read () if we get errno === EWOULDBLOCK we
	  were closing the connection prematurely. This is not right. We
	  should only return a 0 to the reactor, so that it can call us
	  back when there is data in the socket.

Wed Jun 13 10:45:24 2001  Balachandran Natarajan  <bala@cs.wustl.edu>

	* tao/GIOP_Message_Base.cpp (process_reply_message): Fixed the
	  reply parsing and generation of the CDR stream that is passed on
	  to the higher layers of the ORB.

Wed Jun 13 07:25:24 2001  Balachandran Natarajan  <bala@cs.wustl.edu>

	* tao/Makefile: Added new files.
	* tao/Exclusive_TMS.cpp: Removed some commented code.

Tue Jun  12 18:42:55 2001  Balachandran Natarajan  <bala@cs.wustl.edu>

	* tao/GIOP_Message_State.h:
	* tao/GIOP_Message_State.inl: The message_size () now returns the
	  payload size + the GIOP header length. Added a new method
	  payload_size () that returns the payload size alone.

	* tao/GIOP_Message_Base.cpp: Fixed a warning with g++ builds.

	* tao/Connection_Handler.h:
	* tao/Connection_Handler.cpp: The svc_i () method now calls
	  handle_input_i () on the transport instead of the method in the
	  same class. The handle_input_i () in the TAO_Connection_Handler
	  class has been removed as it is no longer used.

	* tao/IIOP_Connection_Handler.h:
	* tao/IIOP_Connection_Handler.cpp: Removed the implementation of
	  handle_input_i ().

	* tao/Incoming_Message_Queue.cpp: When trying to make a new data
	  block we dont add the size of GIOP header. The message_size ()
	  now returns with that value.

	* tao/Incoming_Message_Queue.inl: Fixed a link error in g++
	  builds.

Tue Jun  12 17:42:55 2001  Balachandran Natarajan  <bala@cs.wustl.edu>

	First set of checkins for big two ways.

	* tao/Connection_Handler.h: Added #define for the default
	  buffer size . Not sure yet whether this is the right place for
	  it.

	* tao/Incoming_Message_Queue.h:
	* tao/Incoming_Message_Queue.cpp:
	* tao/Incoming_Message_Queue.inl: Queue up the incoming
	  messages. We form a circular linked list of messages that are
	  bigger than a particular buffer size. During processing we take
	  messages of the queue to pass it onto the higher layers of the
	  ORB.

	* tao/GIOP_Message_Base.cpp:
	* tao/GIOP_Message_Base.h: Added support for big two way
	  requests. If the message has only been partially read we add the
	  message in the queue and then go for the next read. During
	  processing we check if the queue has messages before processing
	  the message on hand.

	* tao/GIOP_Message_State.h:
	* tao/GIOP_Message_State.cpp:
	* tao/GIOP_Message_State.inl: Added accessor methods.

	* tao/Transport.cpp: Added support for bigger two ways. If we
	  receive a two way bigger than a particular size we read and
	  queue the message and do a further read to retrieve the rest of
	  the message.

	* tao/TAO.dsp: Added new files.
	* tao/default_resource.cpp: For single threaded configuration we
	  have been creating a locked data block and that seems to defy
	  logic. We now should create a lock free datablock for single
	  threaded configurations.

Sat Jun  2 12:02:55 2001  Balachandran Natarajan  <bala@cs.wustl.edu>

	* tao/* : Merged with the main trunk.

Fri Jun  1 17:22:29 2001  Balachandran Natarajan  <bala@cs.wustl.edu>

	* tao/GIOP_Message_State.cpp (parse_message_header_i):
	* tao/Connection_Handler.cpp:
	* tao/GIOP_Message_Base.cpp:
	* tao/Makefile:
	* tao/Transport.cpp: Fixed warnings and errors in Linux g++.

Thu Jun 01 13:39:02 2001  Balachandran Natarajan  <bala@cs.wustl.edu>

	* tao/Transport.cpp:
	* tao/Transport.h:  Added the following methods -- handle_input_i
	  (), process_parsed_message (). The handle_input_i () creates a
	  buffer on the stack. It uses the buffer to read the
	  messages. Any errors in read () or dealt here directly. The read
	  message is then parsed and processed by the GIOP classes. Moved
	  most of the code for processing here as they seem to be common
	  between different transport protocols. Once we have received a
	  full message, we just resume the handler and go ahead with
	  processing the message.

	* tao/IIOP_Connection_Handler.cpp (handle_input ()): Calls
	  handle_input_i () on the transport.

	* tao/Connection_Handler.h:
	* tao/Connection_Handler.cpp:  The svc_i () calls the
	  handle_input_i () on the transport instead of the same call on
	  the connection handler. This way we should be able to share the
	  same code among different protocol objects.

	* tao/GIOP_Message_State.h:
	* tao/GIOP_Message_State.cpp: Much of the message parsing and
	  state information is stored here.

	* tao/GIOP_Message_Base.h:
	* tao/GIOP_Message_Base.cpp:
	* tao/Pluggable_Messaging.h: made some changes to suit the
	  above. But more changes could come in, to suit different
	  protocols. We may want to change the interfaces in
	  Pluggable_Messaging to give a much cleaner interface to the
	  world.

	* tao/Wait_On_Read.cpp: Used the handle_input_i () on the
	  transport for processing the incoming data.

	* tao/TAO.dsp:
	* tao/PortableServer/TAO_PortableServer.dsp: Added new files and
	  removed files from GIOP_Lite in the first round.

	* tao/GIOP_Message_Reactive_Handler.cpp:
	* tao/GIOP_Message_Reactive_Handler.h: Looks like these files
	  would be removed during the final merge.

	The above checkins works for simple two way calls. The
	BiDirectional_NestedUpcall test works with the TP_Reactor. This
	works on Win32.


Thu May 24 12:19:02 2001  Balachandran Natarajan  <bala@cs.wustl.edu>

	* tao/Transport.h: Added some design forces for the input data
	  path.