Previous | Table of Contents | Next |
A concrete value is mapped to a concrete usable “class? construct in each programming language, plus possibly some helper
classes where appropriate. In Java, C++, and Smalltalk this is a real concrete class. In C it is a struct.
An abstract value is mapped to some sort of an abstract construct--an interface in Java, and an abstract class with pure virtual
function members in C++.
Tools that implement the language mapping are free to “extend? the implementation classes with “extra? data members and methods.
When an instance of such a class is used as a parameter, only the portions that correspond directly to the IDL declaration,
are marshaled and delivered to the receiving context. This allows freedom of implementations while preserving the notion of
contract and type safety in IDL.