corbacreator.java

来自「卡内基美丽大学的网上教程 ssd8练习5答案」· Java 代码 · 共 70 行

JAVA
70
字号
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 jack
* 
*/
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 + -
显示快捷键?