21.08.2013 Aufrufe

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

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Beispiel: Objekt-Implementierung (Java)<br />

// Datei: HelloImpl.java<br />

import H.*;<br />

import java.io.*;<br />

public class HelloImpl extends HelloPOA {<br />

public void say_hello (Str<strong>in</strong>g msg)<br />

{<br />

System.out.pr<strong>in</strong>tln (msg);<br />

}<br />

};<br />

<strong>ETH</strong> <strong>Zürich</strong> 25 roemer@<strong>in</strong>f.ethz.ch<br />

}<br />

}<br />

// Objekt erzeugen, beim POA anmelden<br />

// und Objektreferenz erzeugen<br />

HelloImpl h = new HelloImpl();<br />

Hello ref = HelloHelper.narrow (<br />

poa.servant_to_reference (h));<br />

// Objektreferenz <strong>in</strong> Datei schreiben<br />

BufferedWriter out =<br />

new BufferedWriter (new FileWriter ("hello.ref"));<br />

out.write (orb.object_to_str<strong>in</strong>g (ref));<br />

out.newL<strong>in</strong>e();<br />

out.close();<br />

// Event-loop des ORB<br />

orb.run();<br />

// Objekt wieder abmelden<br />

poa.deactivate_object (poa.reference_to_id (ref));<br />

<strong>ETH</strong> <strong>Zürich</strong> 27 roemer@<strong>in</strong>f.ethz.ch<br />

// Datei: Server.java<br />

import H.*;<br />

import java.io.*;<br />

import java.util.*;<br />

Beispiel: Server (Java)<br />

import org.omg.<strong>CORBA</strong>.*;<br />

import org.omg.PortableServer.*;<br />

public class Server<br />

{<br />

public static void ma<strong>in</strong> (Str<strong>in</strong>g args[])<br />

throws Exception<br />

{<br />

// ORB Initialisierung<br />

ORB orb = ORB.<strong>in</strong>it (args, null);<br />

// POA Initialisierung und Aktivierung<br />

POA poa = POAHelper.narrow(<br />

orb.resolve_<strong>in</strong>itial_references("RootPOA"));<br />

poa.the_POAManager().activate();<br />

<strong>ETH</strong> <strong>Zürich</strong> 26 roemer@<strong>in</strong>f.ethz.ch<br />

// Datei: Client.cc<br />

#<strong>in</strong>clude "hello.h"<br />

#<strong>in</strong>clude <br />

#<strong>in</strong>clude <br />

us<strong>in</strong>g namespace std;<br />

Beispiel: Client (C++)<br />

<strong>in</strong>t ma<strong>in</strong> (<strong>in</strong>t argc, char *argv[]) {<br />

<strong>CORBA</strong>::ORB_var orb = <strong>CORBA</strong>::ORB_<strong>in</strong>it (argc, argv);<br />

ifstream istr ("hello.ref");<br />

char ref[1000];<br />

istr >> ref;<br />

<strong>CORBA</strong>::Object_var o = orb->str<strong>in</strong>g_to_object (ref);<br />

H::Hello_var h = H::Hello::_narrow (o);<br />

h->say_hello ("hello world!");<br />

return 0;<br />

}<br />

<strong>ETH</strong> <strong>Zürich</strong> 28 roemer@<strong>in</strong>f.ethz.ch

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!