added gvsu/cs656/lab4

git-svn-id: svn://anubis/gvsu@229 45c1a28c-8058-47b2-ae61-ca45b979098e
This commit is contained in:
josh 2008-11-02 21:33:49 +00:00
parent ec5eb17457
commit 507a723e8e
2 changed files with 188 additions and 0 deletions

View File

@ -0,0 +1,59 @@
//----------------------------------------------------------------------
//
// Filename: PresenceService.java
// Description:
//
// $Id:$
//
//----------------------------------------------------------------------
package edu.gvsu.cis.cs656.lab4.server;
/**
* @author Jonathan Engelsma
*
*/
/**
* The abstract interface that is to implemented by a remote
* presence server. ChatClients will use this interface to
* register themselves with the presence server, and also to
* determine and locate other users who are available for chat
* sessions.
*/
public interface PresenceService {
/**
* Register a client with the presence service.
* @param reg The information that is to be registered about a client.
*/
void register(RegistrationInfo reg) throws Exception;
/**
* Unregister a client from the presence service. Client must call this
* method when it terminates execution.
* @param userName The name of the user to be unregistered.
*/
void unregister(String userName) throws Exception;
/**
* Lookup the registration information of another client.
* @param name The name of the client that is to be located.
* @return The RegistrationInfo info for the client, or null if
* no such client was found.
*/
RegistrationInfo lookup(String name) throws Exception;
/**
* Sets the user's presence status.
* @param name The name of the user whose status is to be set.
* @param status true if user is available, false otherwise.
*/
void setStatus(String userName, boolean status) throws Exception;
/**
* Determine all users who are currently registered in the system.
* @return An array of RegistrationInfo objects - one for each client
* present in the system.
*/
RegistrationInfo[] listRegisteredUsers() throws Exception;
}

View File

@ -0,0 +1,129 @@
//----------------------------------------------------------------------
//
// Filename: RegistrationInfo.java
// Description:
//
// $Id:$
//
//----------------------------------------------------------------------
package edu.gvsu.cis.cs656.lab4.server;
/**
* @author Jonathan Engelsma
*
*/
/**
* This class represents the information that the chat client registers
* with the presence server.
*/
public class RegistrationInfo
{
private String userName;
private String host;
private boolean status;
private int port;
public RegistrationInfo()
{
this.userName = null;
this.host = null;
this.status = false;
this.port = -1;
}
/**
* RegistrationInfo constructor.
* @param uname Name of the user being registered.
* @param h Name of the host their client is running on.
* @param p The port # their client is listening for connections on.
* @param s The status, true if the client is available to host a game, false otherwise.
*/
public RegistrationInfo(String uname, String h, int p, boolean s)
{
this.userName = uname;
this.host = h;
this.port = p;
this.status = s;
}
/**
* Determine the name of the user.
* @return The name of the user.
*/
public String getUserName()
{
return this.userName;
}
/**
* @param userName the userName to set
*/
public void setUserName(String userName) {
this.userName = userName;
}
/**
* Determine the host the user is on.
* @return The name of the host client resides on.
*/
public String getHost()
{
return this.host;
}
/**
* @param host the host to set
*/
public void setHost(String host) {
this.host = host;
}
/**
* Get the port the client is listening for connections on.
* @return port value.
*/
public int getPort()
{
return this.port;
}
/**
* @param port the port to set
*/
public void setPort(int port) {
this.port = port;
}
/**
* Get the status of the client - true means availability, false means don't disturb.
* @return status value.
*/
public boolean getStatus()
{
return this.status;
}
/**
* Modify the user's busy/available status.
* @param status set to true if user is available, false otherwise.
*/
public void setStatus(boolean status) {
this.status = status;
}
/**
* hashCode() and equals() use this. Don't touch it!
*/
public String toString()
{
return this.userName + "@" + this.host + ":" + this.port;
}
}