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
|
Sat May 3 22:45:23 1997 Aniruddha Gokhale <gokhale@mambo.cs.wustl.edu>
* IIOP/lib/boa.cpp: Added code temporarily that invokes the
skeleton that is looked up. We still need to add code that will
handle the case when no match is found on the operation names.
* IIOP/lib/boa.hh: The register_obj method on TAO_Object_Table
now returns an integer indicating status of registering (-1 =>
failure, 0 for success).
* IIOP/lib/object.hh: The register_op method on
TAO_Operation_Table now returns an integer code (O for success, -1
for failure).
* IIOP/lib/objtable.{hh,cpp}: The register_obj method returns an
integer code representing either success or failure.
* IIOP/lib/optable.{hh,cpp}: Added new files that implement
concrete strategies for operation name lookup.
Fri May 2 08:48:29 1997 Aniruddha Gokhale <gokhale@mambo.cs.wustl.edu>
* IIOP/lib/object.hh: Modified the signature of register_op on
TAO_Operation_Table to take a second argument to be a pointer to
the actual skeleton.
Thanks to Brian Mendel for reporting this.
Thu May 1 16:46:11 1997 Aniruddha Gokhale <gokhale@mambo.cs.wustl.edu>
* IIOP/lib/object.{hh,cpp}: Added a method that can set the parent
pointer.
* IIOP/lib/params.cpp: A hook has been provided in ROA_Factory to
enable the user to use a user-defined demux strategy.
Wed Apr 30 22:00:51 1997 Aniruddha Gokhale <gokhale@mambo.cs.wustl.edu>
* IIOP/lib/objtable.{hh,cpp}: Added two new files that define
different object demultiplexing strategies.
* IIOP/lib/Makefile: Added objtable as additional source file to compile.
* IIOP/lib/boa.cpp: Provided the default destructor for the
TAO_Object_Table.
* IIOP/lib/boa.cpp: Provided the default destructor for the
TAO_Operation_Table.
* IIOP/lib/orbobj.cpp: Added support for the -OAtablesize option
in the call to CORBA_ORB::BOA_init method.
* IIOP/lib/params.{hh,i,cpp}: Added support to ROA_Factory to return
a specific object lookup strategy.
*IIOP/lib/roa.cpp: The ROA constructor initializes its "objtable_"
private data member with the object lookup strategy returned by
ROA factory.
Tue Apr 29 11:52:48 1997 Aniruddha Gokhale <gokhale@mambo.cs.wustl.edu>
* IIOP/lib/any.hh: Moved CORBA_Any_ptr declaration to orb.hh.
* IIOP/lib/boa.{hh,cpp}: Renamed BOA to CORBA_BOA. The CORBA_BOA class
maintains a pointer to an abstract TAO_ObjectTable class. Concrete
classes inheriting from TAO_ObjectTable will provide strategies
for lookup.
Added virtual functions to do dispatch based on object key. In
addition, added a lookup method based on object key that delegates
the task of looking the object to the object table it maintains.
Changed the signature of typedef CORBA_BOA::dsi_handler to be pointer to
member function of class CORBA_BOA. Eventually, this will point to
the dispatch method of class CORBA_BOA.
Moved "struct Dispatch_Context" from roa.hh to boa.hh since we
want BOA to be a full fledged OA eventually and not remain an
abstract class as it is now. All other OA's such as ROA inherit
from BOA and only add extra functionality.
* IIOP/lib/connect.cpp: There was a syntax error (missing comma)
in one of the ACE_DEBUG statements which has been fixed.
* IIOP/lib/corbacom.{hh,cpp}: Added class CORBA_String_var as well
as the CORBA compliant CORBA_string_dup.
* IIOP/lib/except.hh: Moved CORBA_Exception_ptr declaration to orb.hh.
* IIOP/lib/object.hh: Added an abstract class
TAO_Operation_Table. CORBA_Object maintains a pointer to this
abstract class. The IDL compiler will eventually generate concrete
classes that employ different lookup strategies for operation name
lookup.
* IIOP/lib/orb.hh: Added forward declarations to all CORBA_*
classes. In addition, moved all the CORBA_*_ptr declarations here.
* IIOP/lib/orbobj.{hh,cpp}: Added the CORBA compliant BOA_init
method to class CORBA_ORB. Users can now pass arguments to
BOA_init. Eventually, we want to make this method return any of
the specialized OA's depending on the arguments. Right now, we get
a pointer to the ROA.
* IIOP/lib/params.{hh,i}: Added some more methods and enum
declarations to the ROA_PARAMS singleton.
* IIOP/lib/principa.hh: Moved the CORBA_Principal_ptr declaration
to orb.hh.
* IIOP/lib/roa.{hh,cpp}: Moved some functionality to boa.hh. ROA
is now only a specialized form of BOA.
* IIOP/lib/stub.hh: Moved the typedef for "skeleton" to orb.hh.
* IIOP/lib/svrrqst.{hh,cpp}: Had to rename BOA to CORBA_BOA.
* IIOP/lib/typecode.hh: Moved the CORBA_TypeCode_ptr declaration
to orb.hh.
Tue Apr 22 23:30:19 1997 Chris Cleeland <cleeland@cs.wustl.edu>
* IIOP/lib/connect.cpp (open): Added log message.
* IIOP/lib/params.cpp (concurrency_strategy): Uses reactive
strategy when appropriate.
* IIOP/lib/params.hh: Reactive strategy added.
Tue Apr 22 21:03:15 1997 Chris Cleeland <cleeland@tango.cs.wustl.edu>
* IIOP/lib/giop.cpp: Changed erroneous ACE_GUARD calls to ACE_GUARD_RETURN
calls.
Tue Apr 22 16:15:52 1997 Chris Cleeland <cleeland@cs.wustl.edu>
* IIOP/lib/roa.cpp: Removed more POSIX thread calls.
* IIOP/lib/invoke.cpp: Changed ForceSynchronousCancellation to
ACE_Synchronous_Cancellation_Required and made it use the ACE_OS
calls.
* IIOP/lib/{typecode,svrrqst,request,principa,orbobj,nvlist,iiopobj,giop,except,any}.*:
Removed all vestiges of pthread mutexes...they are now
ACE_Thread_Mutexes. This will likely have to change if we want to
compile something completely devoid of threads, but that's another
day. Also, the mutexes have moved from being globals to being
members on the respective classes. No files should be dependent
on thread.hh any longer.
* IIOP/lib/connect.cpp (open): Removed code obsoleted by use of
the Strategy_Acceptor.
* IIOP/lib/{roa.cpp,connect.cpp},IIOP/tests/svr.cpp: Changes to
use new singletons described below.
* IIOP/lib/params.*: Changed ROA_Parameters and ROA_Factory to use
ACE_Singleton<>. The singleton types are now named ROA_PARAMS and
ROA_FACTORY.
Mon Apr 21 23:44:34 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
* IIOP/lib/roa.cpp (ROA): Changed spelling of clientAcceptor_ to
client_acceptor_ to be consistent with ACE style conventions.
Mon Apr 21 10:52:42 1997 Chris Cleeland <cleeland@cs.wustl.edu>
* IIOP/test/clnt.cpp: Moved call to CORBA_ORB_init() prior to the
parsing of the command line args. This got switched around during
porting to VxWorks.
* IIOP/lib/roa.cpp: Changed calls using clientAcceptor_to use APIs
vended by ACE_Strategy_Acceptor.
* IIOP/lib/roa.hh: Moved default thread flags into ROA_Factory.
* IIOP/lib/params.*: Added ROA_Factory, a singleton which is the
beginning of an abstract factory dynamically producing runtime
strategies based on information found in ROA_Parameters.
* IIOP/lib/connect.cpp: Added call to ROA_Handler's base class
CTOR in initializer list.
* IIOP/lib/connect.hh: Changed ROA_Handler's CTOR so that it can
take an optional ACE_Thread_Manager* arg. This makes it
compatible with the CTORs for the base class. Also changed base
class for ROA_Acceptor to ACE_Strategy_Acceptor.
* IIOP/lib/svrrqst.*: Changed references to BOA_ptr from TOA_ptr.
* IIOP/lib/connect.*: ROA_Handler/ROA_Acceptor moved from roa.*
into here.
* IIOP/lib/params.*: ROA_Parameters moved from roa.* into here.
* IIOP/lib/boa.*: What used to be TOA is now BOA, and lives in
here.
* IIOP/lib/roa.*: Major restructuring required removal of all
classes (see other log entries) from here. This file now houses
only the ROA class.
* IIOP/lib/{tcpoa.*,toa.*}: Removed because of name changes from
TCP_OA->ROA and TOA->BOA.
Fri Apr 18 08:09:19 1997 Brian Mendel <bmendel@mdc.com>
* cdr.hh,corbacom.{hh,cpp},giop.cpp,marshall.cpp,typecode.cpp:
Changes required for WChar missed in earlier committed code.
* connmgr.cpp: Changes required for select statement.
* nvlist.cpp: Conditional include for memory.h added. VxWorks
does not have memory.h.
* object.cpp: Added conditional for VXWORKS to define
IID_IUnknown.
* orbconf.hh: Minor tuning of the configuration file.
* tcpoa.{hh,cpp}: Added VXWORKS conditional includes.
* toa.cpp: Added VXWORKS conditional includes.
Mon Apr 15 17:01:00 1997 Brian Mendel <bmendel@mdc.com>
* roa.cpp: Added return statement to ROA_Handler::open(void*)
method.
* giop.cpp: Modified giop::read_buffer to replace undefined fc
with peer.get_handle(). Modified giop::incoming_message method
parameter list to match function prototype exactly.
* tcpoa.cpp: Replaced fd instances in debug messages with
peer.get_handle() calls.
Mon Apr 14 13:45:54 1997 Chris Cleeland <cleeland@cs.wustl.edu>
* roa.{hh,i,cpp},tcpoa.cpp,svr.cpp: Replaced ACE_ROA with
ROA_Parameters, which is a GoF-style singleton.
Sun Apr 13 00:01:56 1997 Chris Cleeland <cleeland@tango.cs.wustl.edu>
* roa.cpp: Fix continuation condition in ROA_Handler::svc()'s loop
so that it doesn't stop after one iteration. Also added some
debug messages.
* giop.cpp: Fixed some returns being called with no value. This
should have been caught in the previous round of changes.
Sat Apr 12 23:10:08 1997 Chris Cleeland <cleeland@cs.wustl.edu>
* tcpoa.{hh,cpp}: TCP_OA::handle_message() now returns a value
indicating how a message was handled.
* roa.cpp: ROA_Handler::handle_input() now returns a meaningful
value based on what TCP_OA::handle_message() returns.
* giop.{hh,cpp}: Added end-of-file detection on socket
connections, and that is now propagated all the way back up
through GIOP::incoming_message(). I don't know if I violated
something in the spec by doing this, but it was necessary. I'll
look into it later.
Thu Apr 10 11:49:44 1997 Chris Cleeland <cleeland@cs.wustl.edu>
* giop.{hh,cpp}: Overloaded all methods dealing with connections
so that there are two, one taking a file descriptor as argument,
the other taking an ACE_SOCK_Stream. Right now, the *_Stream
version simply forwards to the fd-based one. I would have
preferred to get rid of the fd-based methods altogether, but we've
only converted the server runtime; the client is still using the
original sun code, which is effectively fd-based. In the course
of doing this, I also simplified the decls for incoming_message by
creating typedefs for some of the function pointers passed as
args.
* orbconf.hh: Fixed the stupid auto-endian-ness detector
AGAIN...had my logic reversed!
* roa.cpp: Adjusted code in accordance with changes to tcpoa.hh.
* tcpoa.hh: Moved and renamed TCP_OA::dispatch_context to be
::Dispatch_Context, and changed its endpoint member to be an
ACE_SOCK_Stream.
* roa.hh: Fixed handle_input() to use the underlying peer() data
member for reading data, rather than using its argument. This is
so that when a different thread handles each connection,
handle_input() can simply be called repeatedly by svc().
Wed Apr 9 16:19:21 1997 Chris Cleeland <cleeland@tango.cs.wustl.edu>
* tcpoa.cpp: Fixed a problem that G++ didn't notice regarding
changing the notion of endpoints in servers from server_endpoint
to an ACE_HANDLE.
Wed Apr 9 15:43:37 1997 Chris Cleeland <cleeland@cs.wustl.edu>
* svr.cpp: The -p option is gone, and -e takes its place and is
required. This requires the user to specify not only the port
number, but also the IP address of on which the server should
listen for requests. See ACE_INET_Addr documentation for valid
string formats for addresses. Also, the -t option sets the "use
threads" global.
* orbconf.hh: Hopefully resolved the tension between MS and Unix
platforms in inferring endian-ness of the target platform based on
preprocessor defines. We now check for i386, _M_X86, and vax
(yeah, like we really worry about that, but it's easy to do).
* roa.{hh,i,cpp}: Added support for spawning threads to handle
incoming requests. This involves a state flag for whether or not
to use threads, calling activate() in ROA_Handler::open() if that
flag is set, and creating ROA_Handler::svc() that simply loops
calling handle_input().
Tue Apr 8 11:14:57 1997 Chris Cleeland <cleeland@cs.wustl.edu>
* IIOP/test/svr.cpp: Moved setting of upcall(), forwarder(),
context(), etc. into here rather than in TCP_OA::TCP_OA(), which
is where I mistakenly stuck them a few days ago (duh!).
* IIOP/lib/tcpoa.cpp: Removed setting of ACE_ROA::upcall(), which belongs
in the server code. I got confused because the function names
were so similar: tcpoa.cpp contains ::tcp_oa_dispatcher(), and
svr.cpp contains ::tcpoa_dispatch().
* IIOP/lib/roa.{hh,i,cpp}: Added forwarding function to ACE_ROA global namespace
hack.
* IIOP/lib/orbconf.hh: Fixed preprocessor checks that auto-detect
endian-ness of this processor.
Mon Apr 7 21:08:24 1997 Chris Cleeland <cleeland@cs.wustl.edu>
* IIOP/test/test1_{clnt,svr}.cpp: THESE HAVE NOT BEEN CONVERTED TO
USE ACE EVENT HANDLING!! This round of changes explicitly
instantiates templates where required.
* IIOP/test/svr.cpp: Global function ::OA_listen() no longer
exists; its functionality is now fully contained within ::main().
If USE_ACE_EVENT_HANDLING is defined, a Reactor-based event loop
is used. The original intent was to allow conditional compilation
to select btw. the original method and a Reactor-based method.
However, weaving that into the library proved far more difficult
than anticipated, so more than likely not defining
USE_ACE_EVENT_HANDLING will cause massive grief.
* IIOP/lib/toa.cpp: Changed call to TCP_OA::init() to reflect new
ACE_INET_Addr argument type.
* IIOP/lib/tcpoa.cpp (TCP_OA): All initialization methods were
changed, specifically the CTOR and TCP_OA::init, to reflect the
introduction of ACE_INET_Addr. Two side-effects of using
ACE_INET_Addr are that (1) a server can specify the address on
which it wants to listen and (2) best that I can tell, the server
MUST specify the address on which it wants to listen because
otherwise it won't be able to publish a rational IOR. The event
loop is now changed to simply loop on Reactor::handle_events().
* IIOP/lib/tcpoa.hh (TCP_OA): Removed vestiges of this component's
use of the original connection management scheme. Where
appropriate, hostnames and ports were replaces by ACE_INET_Addr,
endpoints by ACE_HANDLEs, etc. One particularly nasty thing done
was to declare ROA_Handler as a friend so that handle_message()
can be called from ROA_Handler::handle_input(), which to me
exposes a hole in the original architecture wherein input is
"pulled" rather than waited-for. We might need to re-think how
this is handled within TAO.
* IIOP/lib/roa.{hh,i,cpp}: These files contain the required
components to support the new server-side ACE-based
connection/event substrate. The client side remains, as always,
using the connection mgmt scheme used by the original Sun IIOP
code.
* IIOP/lib/giop.cpp: Added explicit template instantiation for
when this is needed.
* IIOP/lib/corbacom.hh: Now protects itself from multiple
inclusion.
* IIOP/lib/Makefile: Added roa.* where appropriate.
Wed Mar 19 10:25:21 1997 Chris Cleeland <cleeland@cs.wustl.edu>
* IIOP/docs/us/codecount/*.count: Added to repository.
* Makefile: Added to repository.
* IIOP/objbase.h: Moved to IIOP/compat.
* IIOP/initguid.h: Moved to IIOP/compat.
Thu Mar 13 14:06:28 1997 Chris Cleeland <cleeland@cs.wustl.edu>
* ChangeLog: Added the ChangeLog.
|