69 lines
1.6 KiB
Java
69 lines
1.6 KiB
Java
|
|
import java.util.HashMap;
|
|
import java.rmi.registry.LocateRegistry;
|
|
import java.rmi.registry.Registry;
|
|
import java.rmi.server.UnicastRemoteObject;
|
|
|
|
public class PresenceServiceImpl implements PresenceService
|
|
{
|
|
private HashMap<String, RegistrationInfo> myRegisteredUsers =
|
|
new HashMap<String, RegistrationInfo>();
|
|
|
|
public PresenceServiceImpl()
|
|
{
|
|
super();
|
|
}
|
|
|
|
public void register(RegistrationInfo reg)
|
|
{
|
|
myRegisteredUsers.put(reg.getUserName(), reg);
|
|
// System.out.println("register(): " + reg.getUserName() + ", " + reg.getHost() + ", " + reg.getPort() + ", " + reg.getStatus());
|
|
}
|
|
|
|
public void unregister(String userName)
|
|
{
|
|
myRegisteredUsers.remove(userName);
|
|
// System.out.println("unregister(): " + userName);
|
|
}
|
|
|
|
public RegistrationInfo lookup(String name)
|
|
{
|
|
return myRegisteredUsers.get(name);
|
|
}
|
|
|
|
public RegistrationInfo[] listRegisteredUsers()
|
|
{
|
|
return myRegisteredUsers.values().toArray(new RegistrationInfo[0]);
|
|
}
|
|
|
|
public static void main(String[] args)
|
|
{
|
|
int port = 1099;
|
|
if (args.length >= 1)
|
|
{
|
|
port = Integer.parseInt(args[0]);
|
|
}
|
|
|
|
if (System.getSecurityManager() == null)
|
|
{
|
|
System.setSecurityManager(new SecurityManager());
|
|
}
|
|
try
|
|
{
|
|
PresenceServiceImpl impl = new PresenceServiceImpl();
|
|
PresenceService stub = (PresenceService)
|
|
UnicastRemoteObject.exportObject(impl, 0);
|
|
Registry registry = LocateRegistry.getRegistry(port);
|
|
registry.rebind("PresenceService", stub);
|
|
System.out.println("PresenceService bound");
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
System.err.println("PresenceServiceImpl exception:");
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
|
|
|