$Id: CHANGES 28386 1999-09-03 22:49:05Z mm4 $

Changelog for chapter 8 and 10  example in "Advanced CORBA 
Programming with C++" by Michi Henning and Steve Vinoski, 
Copyright 1999, Addison-Wesley, Reading, MA.  The following 
changes have been made to the book's source code to make the 
example work with TAO and with various platforms and compilers.
______________________________________________________________________________
ESSENTIAL CHANGES:
  1. Changed filename extensions from .hh and .cc to .h 
     and .cpp, and made all necessary changes in file content.

  2. a) Commented-out "#include <corba/poaS.h>" in server.h
    
     b) Added #include "icp.h" to server.h.
    
     c) Unnecessary includes of <iostreams.h>, <assert.h>,
        <fstream.h> and <stdlib.h> must be removed or moved to 
        follow all other includes in server.h, server.cpp, 
        client.cpp, and icp.cpp.
     
     d) The following files may need their includes further rearranged 
        to avoid warnings and errors (g++). The following orderings 
        seem to work fine: 
          - server.cpp: "server.h", <algorithm>, "icp.h", 
                        <strstream.h>  
          - server.h:  "CCSS.h", "icp.h",<ace/Synch_T.h>, <map>,
                        set, <list>
          - icp.cpp:   <string>, <map>, <algorithm>, <stdlib.h>,
                       "icp.h" 

  3. Added CORBA_Environment variable to 
     DeviceLocator::preinvoke() and ::postinvoke() 
     in server.h and server.cpp to match the signatures of parent
     methods in TAO's ServantLocator class.

  4. removed if 0 code surrounding
     operator<<(ostream & os, const CCS::Controller::EChange & ec)
     definition in server.cpp and client.cpp.

  5. commented-out "delete this;" from method 
     Thermometer_impl::remove() in server.cpp.
     (Change should soon be reflected in authors' code)

  6. member initializers reordeder in Thermometer_impl::
     Thermometer_impl() in server.cpp to match the declaration order 
     in server.h 

______________________________________________________________________________
ADDITIONAL CHANGES:
  7. Added .in() to _var parameters wherever needed:
     -client.cpp: 
         4 times in operator<<(ostream, CCS::Thermometer_ptr)
         6 times in main().  5 are is_nil(), 1 is _narrow()
         2 times added .inout() to _var parameters in main() for calls 
           to set_tmp(..)
     -server.cpp, 
         2 changes in make_dref()
         3 changes in Controller_impl::Controller_impl()
         4 changes in Controller_impl::~Controller_impl()
         1 change in Controller_impl::create_thermometer
         2 changes in Controller_impl::create_thermostat()
         1 change in Controller_impl::list()
         3 changes in Controller_impl::find
         7 changes in main()

  8. created needed file at /tmp/CCS_DB. (location is hard-coded)
     To run, move CCS_DB from this directory to /tmp on the 
     local machine.

  9. fixed warnings by commented out unused parameters in 
       -DeviceLocator_impl::postinvoke(..) in server.h
       -DeviceLocator_impl::preinvoke(..) in server.cpp

  10. MAX_EQ_SIZE changed from int to unsigned int
     in class DeviceLocator_impl in server.h.

  11. added cast to unsigned long in ~ICP_Persist() in icp.cpp:
      db << (unsigned long)(i->second.type) << endl;

______________________________________________________________________________
To Do:
  - fix error on 2 cases of fstream.close() 
    in server.cpp and icp.cpp
____________________________________________________________







