
In order to add a new CORBA class (eg GEAS::Connection, GEAS::DataObject)
the following steps must be followed. The file CORBA.txt describes how the
system works.)


The following files need to be edited at add a new class:


1) geas-skeleton.h

    Add new fields to GEAS_object_reference as necesary
    Add new OBJECTTYPE_<name> define
    Add new make_<name>_reference function prototype

2) geas-skeleton.c

    alloc_geas_object_reference() initialises all fields in
      GEAS_object_reference
    free_geas_object_reference() frees a GEAS_object_reference
    display_geas_object_reference() prints a GEAS_object_reference
    parse_object_id() converts a reference to a GEAS_object_reference
    Add new make_<name>_reference function

3)  geas-server.h

    Add a new POA structure to poa_data_s

4)  geas-skeleton.c

    approx. line 1780:
      Add: POA_GEAS_<classname>_servant structure
      in initialise_object_servants():
          create appropriate POA
          initialise servant
	  set servant manager

5) servantlocator.h

    add 'extern' for POA_GEAS_<classname>_servant structure
    add preinvoke_<classname>/postinvoke_<classname> functions
    add pointer to servant locator instance
    add _epv structure
    add _vepv structure
    add PortableServer_ServantLocator pointer
    add line to create_fake_servants()
    TODO: free_fake_servants()



To create a new object reference, the existing make_*_reference() functions
should be adapted. Additionally, the parse_object_id() function must be
added to, to convert an object ID back to a GEAS object identifier.

the make_*_reference() methods call a function that creates a CORBA object
reference, combining a type identifier (usually a 2 character string) and a
number of additional components (eg: a DataObject includes a classname, a
business object identifier, and the username of the 'owner' of the
reference). The parse_object_id() uses the first characters of the ID string
to identify that it is a DataObject, and thus knows that the string should
contain a further three sections, in the order that was used by
make_dataobject_reference().

