Thu Jun 12 15:45:49 1997 Chris Cleeland * IIOP/lib/objtable.cpp: Added explicit template instantiations for ACE_Hash_Map_Manager<>. * IIOP/lib/giop.*: Finally got rid of all those methods that took ACE_HANDLE as the argument. Now, all those operate on ACE_SOCK_Streams. Thu Jun 5 10:15:21 1997 Chris Cleeland * IIOP/lib/giop.cpp: Corrected output format in error message. Thu Jun 5 10:09:01 1997 Chris Cleeland * IIOP/test/svr.cpp: Added a new class to catch SIGINT and terminate. This was necessary to Quantify the server process. * IIOP/lib/orbobj.h: Added ACE_INLINE to forward decls of CORBA_release() and CORBA_is_nil(). Wed May 23 14:39:01 1997 Brian Mendel * IIOP/lib/objtable.{h,cpp}: Added template specialization of ACE_Hash_Map_Manager for char*'s. * IIOP/test/cubitS.cpp: Fixed type_id to be of type CORBA_String_var. Also, added a debug msg to print the object address to show the object for which the request is made. * IIOP/test/svr.cpp: Added capability to create multiple Cubit objects via command line options. Added -n for number of objects and -k for specifying a base name. For instance, -k Beevis -n 2 creates Beevis1 and Beevis2 objects. The clnt can then specify a specific object for the request as usual. Wed May 22 12:28:45 1997 Brian Mendel * IIOP/test/clnt.cpp: Deleted VxWorks specific sections. Command line is now working for VxWorks. * IIOP/test/svr.cpp: Deleted VxWOrks specific sections. Command line is now working for VxWorks. Wed May 22 11:31:42 1997 Chris Cleeland * IIOP/test/svr.cpp: Added better error checking and messages, and performed general re-formatting. * IIOP/test/method_db.i (initialize_method_db): Changed arg type to use a pointer to the abstract class TAO_Operation_Table. * IIOP/test/cubitS.cpp (_skel_Cubit::_skel_Cubit): Added better error checking and messages. Also defaulted to use the linear object table implementation rather than the hashed to simplify debugging. * IIOP/test/clnt.cpp: Moved some code around so that more of the code is common is less is specific to VxWorks and other platforms. Also did general re-formatting. * IIOP/lib/optable.cpp (TAO_Linear_OpTable::find): Initialization of the loop variable makes the loop work properly. * IIOP/lib/objtable.cpp (TAO_Dynamic_Hash_ObjTable::find): Explicitly specified length of object key in CTOR for ACE_CString because object keys are not zero-terminated. * IIOP/lib/giop.cpp: Added newlines to the end of all ACE_DEBUG() messages. * IIOP/lib/factories.cpp: Added template specializations for ACE_Hash_Addr. Tue May 22 09:32:41 1997 Brian Mendel * IIOP/lib/cdr.h: Deleted #define old_value ACE_INLINE and #define ACE_INLINE old_value lines. Added #undefs for ACE_INLINE prior to redefines. Changes required to compile on Windows NT. Tue May 20 14:47:46 1997 Chris Cleeland * IIOP/test/cubitS.h: Removed forward decl of TAO_Active_Operation_Table. * IIOP/test/{cubitC,cubitS}.*: Changed include quoting characters from [<>] to double-quotes. * IIOP/test/Makefile: Removed cubit.o from clnt and svr target (this has been subsumed by cubit[CS]). * IIOP/lib/optable.h: Changed ACE_RW_Mutex to ACE_SYNCH_RW_MUTEX. * IIOP/lib/optable.cpp: Inserted explicit template instantiations. * IIOP/lib/Makefile: Added optable to the Makefile. * IIOP/lib/optable.cpp: Moved ~TAO_Operation_Table() into here. * IIOP/lib/object.i: Moved find() and bind() into the cpp file. Moved ~TAO_Operation_Table() into optable.cpp. Tue May 20 14:39:00 1997 Brian Mendel * IIOP/test/*: Commited changes to Cubit Example as a current snapshot of required changes. * IIOP/lib/*: Changes required for header file includes. Added conditionals around _IIOP_BUILD_ Tue May 20 13:55:58 1997 Chris Cleeland * IIOP/test/*: Commited this stuff in-process so that Brian M. doesn't have to duplicate effort. Tue May 20 13:04:00 1997 Brian Mendel * IIOP/lib/debug.cpp: Deleted spaces between flockfile (f) and funlockfile (f). Changed instances of debug_filter to TAO_debug_filter. Deleted space between emit_prefix (stream). * IIOP/lib/cdr.cpp Added undef(s) for ACE_INLINE and do_undef_on_ACE_INLINE to eliminate redefinition problems. Tue May 20 10:55:09 1997 Chris Cleeland * IIOP/lib/cdr.h: Fixed the automatic inclusion of cdr.i into cdr.h by checking to see if __ACE_INLINE__ is not defined and, if so, defining ACE_INLINE to be "inline" (we tidy up the namespace immediately after the inclusion of cdr.i, too). See source for comments regarding why this is done. * IIOP/lib/optable.cpp (TAO_Linear_OpTable_Entry): Removed setting of opname and skel_ptr to zero in CTOR since the CTOR for those already insures this. Moreover, NT's compiler was complaining about ambiguous resolutions. * IIOP/lib/{orbobj,giop,debug,boa}.cpp: Fixed reference to debug_level so it's TAO_debug_level. * IIOP/lib/object.h: Replaced inclusion of optable.h with forward decl of TAO_Operation_Table. * IIOP/lib/optable.cpp: Fixed names of methods that were changed in the header but never changed in the source. Amazing that neither g++ nor Sun C++ caught these gaffs! (Finally, the NT compiler wins). * IIOP/lib/{orbobj,object}.h: Changed the forward decls of CORBA_release() and CORBA_is_nil() so that they are only in effect when inlining is NOT being used. * IIOP/lib/giop.cpp: Fixed incorrect passing of an object to ACE_DEBUG() where an int is expected. Mon May 19 17:16:34 1997 Chris Cleeland * IIOP/lib/roa.cpp: Explicit cast rids us of a warning. * IIOP/lib/params.h: Fixed CTOR name. Once again I'm surprised G++ didn't catch this. * IIOP/lib/optable.h: Corrected erroneous method signature on bind(). * IIOP/lib/objtable.cpp: Corrected erroneous method signature on TAO_Linear_ObjTable::bind(). * IIOP/lib/{object,orbobj}.h: Forward declaration of CORBA_release(CORBA_Object_ptr) and CORBA_is_nil(CORBA_Object_ptr) were commented out. I think this will cause a problem when we DON'T inline, but I'll cross that bridge later. * IIOP/lib/{orb,factories}.h: Made inclusion of some headers conditional on the compilation phase (building the library or an application). * IIOP/lib/cdr.i: Removed incorrect default arguments (g++ didn't catch them). * IIOP/lib/Makefile: Removed thread from the header list. Mon May 19 10:07:00 1997 Chris Cleeland * IIOP/lib/optable.cpp: Changed implementation of the operation table and the parameters repository so that they use the right class names. Fri May 16 17:30:31 1997 Chris Cleeland * IIOP/lib/svrrqst.*: Corrected some comments, adjusted some argument type names to reflect their new, namespace-sanitized names, and moved short methods into a new inline file. * IIOP/lib/stub.h: Corrected some comments and adjusted some argument type names to reflect their new, namespace-sanitized names. * IIOP/lib/roa.cpp: Corrected syntax error and fixed up typedef. * IIOP/lib/params.*: Removed extraneous comments and fixed argument type on demux_strategy(). * IIOP/lib/orbobj.*: Added comments, removed static pointer to the ORB. * IIOP/lib/optable.h: Removed extraneous comments and fixed typedefs. * IIOP/lib/objtable.cpp: Fixed some syntax errors introduced by reformating. * IIOP/lib/object.cpp: Adjusted some argument type names to reflect their new, namespace-sanitized names. * IIOP/lib/invoke.cpp: Removed crufty #includes and adjusted some argument type names to reflect their new, namespace-sanitized names. * IIOP/lib/iioporb.*: Moved short methods into inline file, added IIOP_ORB_ptr typedef, and changed data member to conform to ace standards. * IIOP/lib/iiopobj.*: Added the second CTOR that I forgot last time and adjusted some argument type names to reflect their new, namespace-sanitized names. * IIOP/lib/giop.h: Added comments for various enums and structures. * IIOP/lib/giop.cpp: Switched various GIOP::Invocation methods to use handler_->peer() for socket communication rather than going through a file descriptor. Also began the arduous (no other word could explain it!) process of converting the homegrown debugging message macro uses into ACE_DEBUG() uses. * IIOP/lib/factories.*: Added explicit DTOR for TAO_Client_Factory and completed all the darn explicit template instantiations. Changed 'Svc_Handler' to 'TAO_Client_Connection_Handler', and added the forgotton TAO_Client_Factory::connector() method. * IIOP/lib/debug.*: Added 'TAO_' prefix to global debug state variables and removed crufty #includes. * IIOP/lib/connect.cpp: Change ROA_Handler to TOA_OA_Connection_Handler (missed these the last time through). * IIOP/lib/cdr.cpp: Added responsive commentary. * IIOP/lib/boa.cpp: Added comments to the dispatching code. * IIOP/lib/{any,boa,request,typecode}.cpp: Removed references to thread.h/connmgr.*. Thu May 15 19:08:16 1997 Douglas C. Schmidt * Finished updating all the reformatting. Thu May 15 15:54:49 1997 Chris Cleeland * IIOP/lib/principa.h: Corrected syntax error which eliminated the _refcount data member. * IIOP/lib/{params,roa}.*: Updated class names to reflect ROA --> TOA_OA pseudo-namespace change. * IIOP/lib/orbobj.*: Updated CORBA_ORB_init() to return pointer to new ORB singleton. * IIOP/lib/orb.h: Commented out some include files to eliminate wierd circular dependencies. * IIOP/lib/optable.h: Moved TAP_Operation_Table into here. Put OpTable* classes into the TAO_Operation_Table* pseudo-namespace. * IIOP/lib/objtable.*: Moved TAO_Object_Table into here. Moved the Entry classes out of the scope of their respective concrete operation tables, so they're now named _Entry. * IIOP/lib/object.*: Moved TAO_Operation_Table into optable.*, and added a data member which carries a pointer to the ORB with which the object is associated. * IIOP/lib/iioporb.*: Added a singleton typedef for the ORB which is what CORBA_ORB_init() will now return. Modified string_to_object() so that it sets the ORB on the CORBA_Object that it returns. * IIOP/lib/{iiopobj,nvlist}.h: Added some responsive commentary. * IIOP/lib/giop.cpp: Modified connection establishment code in GIOP::Invocation::start() to utilize the client connection manager in the ORB. * IIOP/lib/giop.h: Put a TAO_Client_Connection_Handler* into GIOP::Invocation in place of the client_endpoint. * IIOP/lib/factories.*: Updated explicit template instantiations, added TAO_Client_Connection_Handler. * IIOP/lib/connect.*: Renamed things--ROA_Parameters --> TOA_OA_Parameters, ROA_Handler --> TOA_OA_Connection_Handler. * IIOP/lib/boa.h: Moved TAO_Object_Table into objtable.*, added comments where appropriate. * IIOP/lib/{any,cdr,iioporb,invoke}.*: Re-formatting and creation of inline method file. Tue May 13 21:51:22 1997 Douglas C. Schmidt * Continued to update the format of the TAO source code so that it will be consistent with the style used in ACE. Mon May 12 17:02:29 1997 Chris Cleeland * IIOP/lib/roa.*: Moved short method into an inline file. Miscellaneous reformatting. Adjustment to new type names (prefaced by TAO_ for namespace protection). * IIOP/lib/object.*: Moved short methods into an inline file. Changed lookup()/register_op() to find()/bind() for consistency with established ACE APIs. Miscellaneous reformatting. * IIOP/lib/iiopobj.*: Moved short methods into an inline file. Added CTOR for IIOP::Version and IIOP::ProfileBody. Added convenience CTOR for IIOP_Object where the profile can be supplied. Miscellaneous reformatting. * IIOP/lib/boa.*: Moved short methods into an inline file. Changed lookup()/register_obj() to find()/bind() for consistency with established ACE APIs. * headers: Added comments to force C++ mode in emacs for header files, and changed SCCS version tag info to RCS version tag info. Wed May 7 14:49:46 1997 Aniruddha Gokhale * IIOP/lib/corbacom.cpp: Some bugs from the CORBA_String_var class have been fixed. Thanks to Brian Mendel for noticing these. * IIOP/lib/boa.cpp: In CORBA_BOA::dispatch, the opname local variable of type CORBA_String_var is changed to be of type CORBA_String. This was because the String_var class would assume ownership of the quantity assigned and delete it. Thanks again to Brian Mendel for noticing this. Tue May 6 14:06:49 1997 Aniruddha Gokhale * IIOP/lib/boa.hh: the register_obj's 2nd argument is changed from CORBA_Object_ptr& to CORBA_Object_ptr * IIOP/lib/object.hh: the return type for register_op method on CORBA_Object is changed from void to int to be consistent. Added a new method "get_subclass" to CORBA_Object that returns a pointer to the subclass. Typeically, this would be pointer to an object that implements an interface. * IIOP/lib/objtable.{hh,cpp}: @nd argument of register_obj changed from CORBA_Object_ptr& to CORBA_Object_ptr. * IIOP/lib/orb.hh: the type signature of "skeleton" is changed to take CORBA_Object_ptr rather than CORBA_Object_ptr& as its 2nd argument. Mon May 5 20:28:54 1997 Aniruddha Gokhale * IIOP/lib/boa.cpp: commented out code that uses the "void *context" field. It doesn't make any sense to have it. * IIOP/lib/boa.hh: Added 2 pure virtual methods (shutting_down and clean_shutdown). In addition, the "register_obj" method was added. It was missing before. * IIOP/lib/corbacom.cpp: String_var's constructor bug is fixed. It was trying to free storage that was never allocated. * IIOP/lib/iiopobj.{hh,cpp}: Added a method - "get_name" that retrieves the object name. * IIOP/lib/object.{hh,cpp}: Added a method - "get_name" that retrieves the object's name or key. This is for debugging purposes. * IIOP/lib/orbobj.cpp: There was an infinite loop in parsing the options to BOA_init. Fixed. * IIOP/lib/stub.hh: Added the "get_name" virtual method. Sat May 3 22:45:23 1997 Aniruddha Gokhale * 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 * 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 * 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 * 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 * 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 * 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 * IIOP/lib/giop.cpp: Changed erroneous ACE_GUARD calls to ACE_GUARD_RETURN calls. Tue Apr 22 16:15:52 1997 Chris Cleeland * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * ChangeLog: Added the ChangeLog.