Einführung in CORBA Middleware Middlewareplattform ... - ETH Zürich
Einführung in CORBA Middleware Middlewareplattform ... - ETH Zürich
Einführung in CORBA Middleware Middlewareplattform ... - ETH Zürich
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
IDL: Module<br />
• Zusammengehörige Deklarationen können durch e<strong>in</strong><br />
Modul zusammengefasst werden:<br />
module Bank<strong>in</strong>g {<br />
exception BankException { ... };<br />
<strong>in</strong>terface Konto { ... };<br />
...<br />
};<br />
• Auf Elemente e<strong>in</strong>es Moduls kann mittels des Scope-<br />
Operators zugegriffen werden:<br />
Bank<strong>in</strong>g::Konto<br />
<strong>ETH</strong> <strong>Zürich</strong> 13 roemer@<strong>in</strong>f.ethz.ch<br />
Java/C++-Mapp<strong>in</strong>g: Basistypen<br />
IDL Java C++<br />
short short <strong>CORBA</strong>::Short<br />
long <strong>in</strong>t <strong>CORBA</strong>::Long<br />
long long long <strong>CORBA</strong>::LongLong<br />
unsigned short short <strong>CORBA</strong>::UShort<br />
unsigned long <strong>in</strong>t <strong>CORBA</strong>::ULong<br />
unsigned long long long <strong>CORBA</strong>::ULongLong<br />
float float <strong>CORBA</strong>::Float<br />
double double <strong>CORBA</strong>::Double<br />
long double - <strong>CORBA</strong>::LongDouble<br />
char char <strong>CORBA</strong>::Char<br />
wchar char <strong>CORBA</strong>::WChar<br />
boolean boolean <strong>CORBA</strong>::Boolean<br />
octet byte <strong>CORBA</strong>::Octet<br />
any <strong>CORBA</strong>.any <strong>CORBA</strong>::Any<br />
fixed math.BigDecimal <strong>CORBA</strong>::Fixed<br />
<strong>ETH</strong> <strong>Zürich</strong> 15 roemer@<strong>in</strong>f.ethz.ch<br />
Abbildung von IDL nach Java/C++<br />
• Abbildung von IDL-Konstrukten auf Konstrukte <strong>in</strong> der<br />
entsprechenden Programmiersprache<br />
• Teil der <strong>CORBA</strong>-Spezifikation (für C, C++, Java, Smalltalk,<br />
Ada, ...)<br />
• Wird vom IDL-Compiler implementiert<br />
<strong>ETH</strong> <strong>Zürich</strong> 14 roemer@<strong>in</strong>f.ethz.ch<br />
Java/C++-Mapp<strong>in</strong>g: Template-Typen<br />
IDL Java C++<br />
str<strong>in</strong>g, str<strong>in</strong>g lang.Str<strong>in</strong>g char*<br />
wstr<strong>in</strong>g, wstr<strong>in</strong>g lang.Str<strong>in</strong>g <strong>CORBA</strong>::WChar*<br />
Array Klasse mit Array Array<br />
• In C++ werden Helferfunktionen für die Behandlung<br />
von Str<strong>in</strong>gs bereitgestellt:<br />
char *<strong>CORBA</strong>::str<strong>in</strong>g_dup (const char *s);<br />
char *<strong>CORBA</strong>::str<strong>in</strong>g_alloc (<strong>CORBA</strong>::Long len);<br />
void <strong>CORBA</strong>::str<strong>in</strong>g_free (char *s);<br />
• Ausserdem Helferklassen <strong>CORBA</strong>::Str<strong>in</strong>g_var und<br />
<strong>CORBA</strong>::WStr<strong>in</strong>g_var zur "automatischen" Speicherverwaltung<br />
<strong>ETH</strong> <strong>Zürich</strong> 16 roemer@<strong>in</strong>f.ethz.ch