Horus Doc || Java GUI Reference || Doxygen's quick Index  

FullCorbaMediator Class Reference

CorbaMediator used in an application. More...

Inheritance diagram for FullCorbaMediator::

CorbaMediator List of all members.

Public Methods

 FullCorbaMediator (String[] args)
boolean createInProcServer ()
boolean createInProcServer (int port)
boolean useDefaultServer ()
boolean useServer (String name)
boolean useServerRef (String name)
boolean hasInProcServer ()
boolean hasLocalServer ()
boolean isServerObject (org.omg.CORBA.Object obj)
 returns true if it is an object created in our server. More...

org.omg.CORBA.ORB orb ()
String object_to_string (org.omg.CORBA.Object obj)
org.omg.CORBA.Object string_to_object (String ref)
org.omg.CORBA.Object activateServant (Servant servant)
void deactivateServant (Servant servant)
String registerApp (HxCorba.AppOperations appOper, String prefix)
void unregisterApp (String name)
boolean isAlive (org.omg.CORBA.Object obj)
RgbTransferManager createRgbTxMgr (int size, org.omg.CORBA.Object src)
org.omg.CORBA.Object getInitialObject (String name)
org.omg.CORBA.Object getService (String name)

Detailed Description

CorbaMediator used in an application.

The connection to the ORB is made used on the properties of the Java application (properties are set via an external shell script). Possibly, a connection to the Horus C++ server is made based on command line arguments.


Constructor & Destructor Documentation

FullCorbaMediator::FullCorbaMediator String    args[] [inline]
 

00030 {
00031     try {
00032         setOrbacusProperties(System.getProperties());
00033         _orb = org.omg.CORBA.ORB.init(args, null);
00034         if(!(_orb instanceof com.ooc.CORBA.ORB))
00035             ErrorStreamArea.println("Not ORBacus ORB!");
00036 
00037         parseArgs(args);
00038         if(_server == null) _server = new DefaultImageServer(_orb);
00039 
00040     }catch(Exception e) {
00041         ErrorStreamArea.println(" "+e);
00042         e.printStackTrace();
00043         _orb = null;
00044     }
00045 }


Member Function Documentation

boolean FullCorbaMediator::createInProcServer   [inline]
 

00049 {
00050     InProcImageServer s = new InProcImageServer();
00051     if(!s.success()) {
00052         ErrorStreamArea.println("Error initializing server");
00053         return false;
00054     }
00055 
00056     _server = s;
00057 
00058     return true;
00059 }

boolean FullCorbaMediator::createInProcServer int    port [inline]
 

00062 {
00063     InProcImageServer s = new InProcImageServer(port);
00064     if(!s.success()) {
00065         ErrorStreamArea.println("Error initializing server");
00066         return false;
00067     }
00068 
00069     _server = s;
00070     return true;
00071 }

boolean FullCorbaMediator::useDefaultServer   [inline]
 

00074 {
00075     _server = new DefaultImageServer(_orb);
00076     return true;
00077 }

boolean FullCorbaMediator::useServer String    name [inline]
 

00080 {
00081     RegisteredImageServer s = new RegisteredImageServer(name);
00082     if(!s.success()) {
00083         ErrorStreamArea.println("Error connecting to server "+name);
00084         return false;
00085     }
00086 
00087     _server = s;
00088     return true;
00089 }

boolean FullCorbaMediator::useServerRef String    name [inline]
 

00092 {
00093     RegisteredImageServer s = new RegisteredImageServer(name, _orb);
00094     if(!s.success()) {
00095         ErrorStreamArea.println("Error connecting to server "+name);
00096         return false;
00097     }
00098 
00099     _server = s;
00100     return true;
00101 }

boolean FullCorbaMediator::hasInProcServer   [inline, virtual]
 

Reimplemented from CorbaMediator.

00104 {
00105     return (_server instanceof InProcImageServer);
00106 }

boolean FullCorbaMediator::hasLocalServer   [inline, virtual]
 

Reimplemented from CorbaMediator.

00109 {
00110     if (_server instanceof InProcImageServer) return true;
00111 
00112     try {
00113         HxCorba.Constructor cons = _server.constructor();
00114         String name = StubRepository.getStubInfo(cons).getItem("Host");
00115         InetAddress addr = InetAddress.getByName(name);
00116 
00117         return addr.equals(InetAddress.getLocalHost()) ||
00118             addr.equals(InetAddress.getByName("localhost"));
00119     }
00120     catch(Exception e){
00121         return false;
00122     }
00123 }

boolean FullCorbaMediator::isServerObject org.omg.CORBA.Object    obj [inline, virtual]
 

returns true if it is an object created in our server.

Reimplemented from CorbaMediator.

00127 {
00128     try {
00129         HxCorba.Constructor cons = _server.constructor();
00130 
00131         StubInfo info1 = StubRepository.getStubInfo(cons);
00132         StubInfo info2 = StubRepository.getStubInfo(obj);
00133 
00134         return (info1.getItem("Host").equals(info2.getItem("Host")) &&
00135             info1.getItem("Port").equals(info2.getItem("Port")));
00136     }
00137     catch(Exception e){
00138         return false;
00139     }
00140 }

org.omg.CORBA.ORB FullCorbaMediator::orb   [inline, virtual]
 

Reimplemented from CorbaMediator.

00143 {
00144     return _orb;
00145 }

String FullCorbaMediator::object_to_string org.omg.CORBA.Object    obj [inline, virtual]
 

Reimplemented from CorbaMediator.

00148 {
00149     return _orb.object_to_string(obj);
00150 }

org.omg.CORBA.Object FullCorbaMediator::string_to_object String    ref [inline, virtual]
 

Reimplemented from CorbaMediator.

00153 {
00154     return _orb.string_to_object(ref);
00155 }

org.omg.CORBA.Object FullCorbaMediator::activateServant Servant    servant [inline]
 

00158 {
00159     org.omg.CORBA.Object result = null;
00160     try {
00161         POA poa = POAHelper.narrow(_orb.resolve_initial_references("RootPOA"));
00162         POAManager manager = poa.the_POAManager();
00163 
00164         poa.activate_object(servant);
00165         result = poa.servant_to_reference(servant);
00166 
00167         if(_orbRunThread == null) {
00168             manager.activate();
00169             _orbRunThread = new Thread() {
00170                 public void run() { _orb.run(); }
00171             };
00172             _orbRunThread.start();
00173         }
00174 
00175     }catch(Exception e) {
00176         ErrorStreamArea.println(" "+e);
00177         e.printStackTrace();
00178     }
00179 
00180     return result;
00181 }

void FullCorbaMediator::deactivateServant Servant    servant [inline]
 

00184 {
00185     try {
00186         POA poa = POAHelper.narrow(_orb.resolve_initial_references("RootPOA"));
00187         byte[] oid = poa.servant_to_id(servant);
00188         poa.deactivate_object(oid);
00189     }catch(Exception e) {
00190     }
00191 }

String FullCorbaMediator::registerApp HxCorba.AppOperations    appOper,
String    prefix
[inline, virtual]
 

Reimplemented from CorbaMediator.

00194 {
00195     Servant servant = new HxCorba.AppPOATie(appOper);
00196     org.omg.CORBA.Object app = activateServant(servant);
00197     ApplicationsManager appMgr = ApplicationsManager.defaultAppMgr();
00198     if(appMgr == null) return null;
00199 
00200     String name = appMgr.putApplication("Clients", prefix, app);
00201     try {
00202         if(hasInProcServer()) {
00203             HxCorba.Constructor cons = _server.constructor();
00204             appMgr.bindApplication("Servers", name, cons);
00205         }
00206     }catch(org.omg.CosNaming.NamingContextPackage.AlreadyBound e) {
00207         ErrorStreamArea.println("Cannot register server "+name);
00208     }
00209 
00210     return name;
00211 }

void FullCorbaMediator::unregisterApp String    name [inline, virtual]
 

Reimplemented from CorbaMediator.

00214 {
00215     ApplicationsManager appMgr = ApplicationsManager.defaultAppMgr();
00216 
00217     appMgr.removeApplication("Clients", name);
00218     if(hasInProcServer())
00219         appMgr.removeApplication("Servers", name);
00220 }

boolean FullCorbaMediator::isAlive org.omg.CORBA.Object    obj [inline, virtual]
 

Reimplemented from CorbaMediator.

00223 {
00224     String something = "IDL:HxCorba/Checking/Object:99.9";
00225     if(obj == null) return false;
00226     try {
00227         obj._is_a(something);
00228         return true;
00229     }catch(Exception e) {
00230         return false;
00231     }
00232 }

RgbTransferManager FullCorbaMediator::createRgbTxMgr int    size,
org.omg.CORBA.Object    src
[inline, virtual]
 

Reimplemented from CorbaMediator.

00235 {
00236     if(src == null) return new NoBufferTxManager();
00237 
00238     if(hasInProcServer() && isServerObject(src))
00239         return new InProcBufferTxManager();
00240     else
00241         return new LocalBufferTxManager(size);
00242 }

org.omg.CORBA.Object FullCorbaMediator::getInitialObject String    name [inline, virtual]
 

Reimplemented from CorbaMediator.

00246 {
00247     try {
00248         return _server.getInitialObject(name);
00249     }
00250     catch(org.omg.CORBA.ORBPackage.InvalidName e) {
00251         //ErrorStreamArea.println("No \""+name+"\" in server");
00252         return null;
00253     }
00254 }

org.omg.CORBA.Object FullCorbaMediator::getService String    name [inline, virtual]
 

Reimplemented from CorbaMediator.

00257 {
00258     //if(_applet != null) obj = _orb.string_to_object(_services.getProperty(name));
00259 
00260     try {
00261         return _orb.resolve_initial_references(name);
00262     }
00263     catch(org.omg.CORBA.ORBPackage.InvalidName e) {
00264         //ErrorStreamArea.println("\""+name+"\" not found in configuration file");
00265         return null;
00266     }
00267 }


The documentation for this class was generated from the following file:
Generated on Tue Feb 3 14:19:44 2004 for JavaReference by doxygen1.2.12 written by Dimitri van Heesch, © 1997-2001