package elte.java2_utikalauz5.corba; import org.omg.CosNaming.*; import org.omg.PortableServer.*; import org.omg.CORBA.*; /** Autobusz megvalósítás szerver oldal. @link.forrásfájl {@docRoot}/../data/corba/src AutobuszServer.java @link.letöltés {@docRoot}/../data/corba AutobuszServer.jar @since Java Útikalauz programozóknak 1.1 */ public class AutobuszServer extends GepjarmuServer implements AutobuszOperations { /** konstruktor */ public AutobuszServer( String r, String t, short f ) { super( r, t); ferohely = f; } // publikus metódusok public short ferohely() { return ferohely; } public void ferohely(short f) { ferohely = f; } public String print() { return "Autobusz, rendszam = "+rendszam+", tulajdonos = "+tulajdonos+ ", ferohely = "+ferohely; } /** attribútumok */ private short ferohely; public static void main(String args[]) { try{ // Az ORB inicializálása ORB orb = ORB.init(args, null); POA rootpoa = POAHelper.narrow(orb.resolve_initial_references("RootPOA")); rootpoa.the_POAManager().activate(); Autobusz autobusz = new AutobuszPOATie(// Az igazi servant objektumot a Tie objektumba delegáljuk new AutobuszServer("BUS123", "BKV", (short)45), rootpoa)._this(orb);// A kiszolgáló objektum létrehozása // Névszolgáltatás elérése org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService"); NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef); // Az Autobusz név (szolgáltatás) és a kiszolgáló objektum összekötése String name = "Autobusz"; NameComponent path[] = ncRef.to_name( name ); ncRef.rebind(path, autobusz); // Kliens hívások kiszolgálása System.out.println("Autobusz szerver fut ..."); orb.run(); } catch (Exception e) { System.err.println("ERROR: " + e); e.printStackTrace(System.out); } } }