(no subject)

Ewald Salcher ([email protected])
Wed, 12 Apr 95 10:28:10 PDT

Hi JK,

regarding to your suggestion about putting the object-system
into libraries.

------------------------------------------------------------
The object system now consists of 3 parts (3 different directories):

I. Independent code (.../Object)
II. CORBA-dependent part (.../Object/corba)
III. C++-dependent part (.../Object/cpp)

The Independent Part uses a certain CORBA functionality like
CORBA::String,
CORBA::Sequence,
_duplicate(),
_release(), ....
This functionality is either implemented in real CORBA or
simulated by C++-Code.

For example: A Collection has a sequence of Anys. In the CORBA-case
this sequence appears in the IDL, so it is there in the
generated code, the independent part uses it. The actual
data structure is provided by CORBA.
Because the independent part uses sequences the C++ part
has to implement exact the same sequence as it is provided
by CORBA.

Duplicating object references is something that both the
object system and the user of the object system do. It is
necessary for the CORBA version. So the C++-implementation
also implements _duplicate(), _ref() and _release(). Like
in the CORBA case a reference counter is in/decremented.


using the object system
| \
| \
Independent Code |
| /
| /
CORBA-Functionality (CORBA::Sequence, CORBA::String, _duplicate(), ...)
| \
| \
| \
C++-Code CORBA-Code

---------------------------------------------------------------------------------

So, a runable version of the object-system either consists of

(i) Independent Code + C++-Code or
(ii) Independent Code + CORBA-Code.

The Makefile now creates one of these version, depending on
make cpp
make corba

I think this would also be a way to put files together in libraries.
So there would be a library for the C++-version of the object system
and a library for the CORBA-version.

-------------------------------------------------
Ewald Salcher USC/Information Sciences Institute
4676 Admiralty Way, Marina del Rey, CA 90292
Phone: (310) 822-1511 250 Fax: (310) 823-6714