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
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
• Str<strong>in</strong>g: str<strong>in</strong>g, wstr<strong>in</strong>g<br />
IDL: Template-Typen<br />
• Bounded Str<strong>in</strong>g: str<strong>in</strong>g, wstr<strong>in</strong>g<br />
• Sequence: sequence<br />
• Bounded Sequence: sequence<br />
• Array: type[size]<br />
<strong>ETH</strong> <strong>Zürich</strong> 9 roemer@<strong>in</strong>f.ethz.ch<br />
IDL: Interfaces 1<br />
• Deklaration der Schnittstelle e<strong>in</strong>es <strong>CORBA</strong>-Objektes:<br />
<strong>in</strong>terface Konto {<br />
str<strong>in</strong>g konto_nummer();<br />
void e<strong>in</strong>zahlen(<strong>in</strong> unsigned long betrag);<br />
};<br />
• Parameter werden mit e<strong>in</strong>er Richtung versehen (<strong>in</strong>,<br />
out oder <strong>in</strong>out)<br />
• Methoden können Exceptions werfen:<br />
<strong>in</strong>terface Konto {<br />
void abheben (<strong>in</strong> unsigned long betrag)<br />
raises (BankException);<br />
};<br />
<strong>ETH</strong> <strong>Zürich</strong> 11 roemer@<strong>in</strong>f.ethz.ch<br />
IDL: Konstruierte Typen<br />
• Exception: exception Error { short code; };<br />
• Aufzählungen: enum Color { Red, Blue };<br />
• Strukturen: struct Po<strong>in</strong>t { float X; float Y; };<br />
• Union:<br />
union PackedInt switch (short) {<br />
case 2: short <strong>in</strong>t2;<br />
case 4: long <strong>in</strong>t4;<br />
default: long long <strong>in</strong>t8;<br />
};<br />
<strong>ETH</strong> <strong>Zürich</strong> 10 roemer@<strong>in</strong>f.ethz.ch<br />
IDL: Interfaces 2<br />
• Vererbung (auch von mehreren Interfaces):<br />
<strong>in</strong>terface GiroKonto : Konto {<br />
attribute unsigned long kredit_limit;<br />
};<br />
• Attribute können abgefragt und gesetzt werden<br />
• Überladen von Methoden (gleicher Methodenname<br />
mit verschiedenen Parametern) ist nicht möglich<br />
<strong>ETH</strong> <strong>Zürich</strong> 12 roemer@<strong>in</strong>f.ethz.ch