corbacreator.java

来自「Icarnegie university SSD8电子书和全部练习答案」· Java 代码 · 共 80 行

JAVA
80
字号
www.pudn.com > Exercise5.rar > CorbaCreator.java


import java.util.*; 
import org.omg.CORBA.*; 
import org.omg.CosNaming.*; 
import org.omg.PortableServer.POA; 
import CreatorFile.*; 

/** 
* The client creator in a Corba system. 
* 
* @author Jinjiang 
* 
*/ 
public class CorbaCreator extends CreatorPOA { 

ORB orb; 

org.omg.CORBA.Object obj, remoteRef; 

NamingContext namingContext; 

NameComponent component; 

Vector<String> users = new Vector<String>(); 

public CorbaCreator(String args[]) { 

try { 
orb = ORB.init(args, null); 
} catch (Exception e) { 
} 
} 

/** 
* Do the register operation. 
* 
*/ 
public boolean register(String username, String password) { 

if (username.equals("") || password.equals("")) 
return false; 

if (users.contains(username)) 
return false; 

try { 

POA rootpoa = (POA) orb.resolve_initial_references("RootPOA"); 
rootpoa.the_POAManager().activate(); 

CorbaList list = new CorbaList(username, password); 
remoteRef = rootpoa.servant_to_reference(list); 

obj = orb.resolve_initial_references("NameService"); 
namingContext = NamingContextHelper.narrow(obj); 

component = new NameComponent(username, ""); 
NameComponent[] componentList = { component }; 

namingContext.rebind(componentList, remoteRef); 
users.add(username); 

return true; 
} catch (Exception e) { 
} 

return false; 
} 
} 








⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?