gvsu/cs656/lab2/src/PresenceServiceImpl.java
josh 916590d206 added port specification to run_server.sh and PresenceServiceImple.java
git-svn-id: svn://anubis/gvsu@157 45c1a28c-8058-47b2-ae61-ca45b979098e
2008-09-18 01:26:16 +00:00

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();
}
}
}