| |
September 2003 Java zum IDL-Diagramm: BeweglichkeitcSchnittstellen 1-55 1 Öffentlichkeit _ Aardvark_Stub() { }// implizit oder ausdrücklich allgemeines internes echo(int x) wirft java.rmi.RemoteException, Boomerang { org.omg.CORBA_2_3.portable.InputStream in = Null; Versuch { Versuch { org.omg.CORBA.OutputStream aus = _ richten request("echo") aus; out.write_long(x); in = (org.omg.CORBA_2_3.portable.InputStream) _ invoke(out); Rückkehr in.read_long(); } Verriegelung (org.omg.CORBA.portable. ApplicationException ex) { in = (org.omg.CORBA_2_3.portable.InputStream) ex.getInputStream(); Zeichenkette Kennzeichnung = in.read_string(); wenn (id.equals("IDL:BoomerangEx/1.0")) { Throw (Boomerang)in.read_value(); } sonst { Throw neues java.rmi.UnexpectedException(id); } } Verriegelung (org.omg.CORBA.portable.RemarshalException ex) { Rückholecho(x); } } Verriegelung (org.omg.CORBA.SystemException ex) { Throw javax.rmi.CORBA.Util.mapSystemException(ex); } schließlich { _ releaseReply(in); } } } 1,5,2,2 Lokal Stummel Die Stummelkategorie kann einen optimierten Anrufweg für lokale Bedienerimplementierung zur Verfügung stellen Gegenstände. Für ein Methoden- echo(int x) von einer Remoteschnittstelle Aardvark optimiert Weg tut das folgende: 1. Finden Sie heraus, wenn der Bedienstete lokal ist, indem er Util.isLocal() benennt . 2. Wenn der Bedienstete lokal ist, benennen Sie this._servant_preinvoke("echo ", Aardvark.class) . 3. Wenn _ servant_preinvoke brachte ein NichtnullServantObject so zurück tun Sie Folgen: a. Anruf ((Aardvark)so.servant).echo(x) . |  |
|
| |
|
|