This is intended for use with VisiBroker 3.3 or 4.0, and Delphi 6 only. It supersedes all field test releases.
VisiBroker support for Delphi is provided in the form of:
VisiBroker 3.3:
VisiBroker 4.0:
Compatibility with Delphi 6
The new Delphi CORBA capability provided by this product is designed to coexist with the current Delphi 6. Specifically, the new runtime files are add-on files for the original runtime library. They do not replace existing files in the Delphi 6 product.
Because the two CORBA architectures can coexist and are compatible it is possible to;
| |
Use the CORBA wizards that are integrated into Delphi 6 to generate static binding clients and servers. |
| |
Connect a client written using the new client-side implementation to connect to a server generated by the Delphi 6 DII wizards. The existing CORBA functionality in Delphi 6 uses the Type Library Editor to generate OMG CORBA 2.1 compatible IDL from a Type Library. This means that you can you can create a server with the Delphi 6 Type Library Editor and then access it with a client built using the stub files generated from the IDL by the idl2pas compiler (see examples ). You can also create complete clients and servers just using the IDL2pas compiler. However, the "preferred" method of developing CORBA applications is to use OMG IDL and the IDL2Pas compiler. Note, to use both DII and IDL2pas you need to install the VisiBroker 3.3 ORB. |
This is the first generally-released compiler to be based on the Inprise VisiBroker 4.0 Common IDL Compiler Architecture (VCICA). The use of the VCICA facilitates the future integration of the compiler into the Delphi IDE and other Inprise components. The VCICA is written in Java and for this reason the IDL-to-Pascal compiler itself is written in Java. This ensures that the tool will also run on Linux and will facilitate support for Kylix.
The IDL-Pascal Mapping
Inprise has specified a language mapping between IDL and Pascal. The language mapping is described in chapter two of the VisiBroker for Delphi manual . This mapping has not been sanctioned by the OMG and may be subject to revision.
The examples included in this distribution show various aspects of the mapping described in the document.
Corba 2.1 and 2.3
The current release of the Delphi ORB is built around either VisiBroker 3.3.2 which supports CORBA 2.1, or VisiBroker 4.0 which supports the CORBA 2.3 IDL standard (note Object By Value is not supported in this release).
Corba Keywords
CORBA 2.3 adds a number of keywords to those recognized by 2.1. This means that IDL that is accepted by a 2.1 compliant compiler will be rejected by a 2.3 compliant compiler if that IDL uses names that happen to be among the keywords that are new to 2.3.
If you encounter this situation the compiler's keyword detection can be overridden by prefix the offending word with an underbar (_) in the IDL. (i.e. the operation void supports(short a) would become void _supports(short a) in the IDL. The resulting pascal files would contain an operation named supports, not _supports.)
Pascal Keywords
Any name used in an IDL file that conflicts with a Pascal keyword will automatically have an underscore added to it by the compiler in order to prevent naming conflicts when the generated files are processed by the Delphi compiler. Note: in some testing the use of "Owner" as a variable name results in the generation of the variable "_Owner". In some cases you may still get a compile error. The work around is to change all instances of this variable to "Owner_". It is recommended the you avoid the use of Delphi reserved words.
| |
Client and Server CORBA generation |
| |
Support for all of the basic CORBA types that can be mapped to Pascal (int, float, double, string, etc.) At present we do not intend to add support for the fixed datatype because there is no equivalent type in Delphi. |
| |
Modules. |
| |
Single and Multiple Inheritance of interfaces. |
| |
Compound types; Structs, Unions, Arrays, and Sequences. |
| |
Parameter passing for In, Out, and InOut directions. |
| |
One-way and two-way operations. |
| |
Attributes. |
| |
Exception handling. |
| |
Constants. |
| |
Nesting of modules, compound types etc.. |
| |
Preprocessor directives (#include etc.). |
| |
Anonymous types. |
| |
CORBA Object type. |
| |
CORBA Any type. |
| |
Callbacks |
| |
COSNaming Service |
| |
COSEvent Service |