/*
* $Id: ListenerPreferences.java,v 1.2 2002/09/16 08:05:06 jkl Exp $
*
* Copyright (c) 2002 Njet Communications Ltd. All Rights Reserved.
*
* Use is subject to license terms, as defined in
* Anvil Sofware License, Version 1.1. See LICENSE
* file, or http://njet.org/license-1.1.txt
*/
package anvil.server;
import java.io.IOException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import anvil.session.Session;
import anvil.server.listener.Listener;
/**
* class ListenerPreferences
*
* @author: Jani Lehtim�ki
*/
public class ListenerPreferences extends Preferences
{
public static final String[] PREFERENCES = {
"port", "int",
"timeout", "int",
"maxclients", "int",
"maxthreads", "int",
"keepalive", "int",
"backlog", "int",
};
private int _port = 8080;
private int _timeout = 120;
private int _maxclients = 10;
private int _maxthreads = 10;
private int _keepalive = 10;
private int _backlog = 4;
public ListenerPreferences(Zone parent)
{
super(parent);
}
public void setPort(int port)
{
_port = port;
}
public int getPort()
{
return _port;
}
public void setTimeout(int timeout)
{
_timeout = timeout;
}
public int getTimeout()
{
return _timeout;
}
public void setMaxClients(int max)
{
_maxclients = max;
}
public int getMaxClients()
{
return _maxclients;
}
public void setMaxThreads(int max)
{
_maxthreads = max;
}
public int getMaxThreads()
{
return _maxthreads;
}
public void setKeepAlive(int seconds)
{
_keepalive = seconds;
}
public int getKeepAlive()
{
return _keepalive;
}
public void setBackLog(int size)
{
_backlog = size;
}
public int getBackLog()
{
return _backlog;
}
public int getType()
{
return LISTENER;
}
public String[] getPreferences()
{
return PREFERENCES;
}
public Object getPreference(String name)
{
if (name.equalsIgnoreCase("port")) {
return new Integer(_port);
}
if (name.equalsIgnoreCase("timeout")) {
return new Integer(_timeout);
}
if (name.equalsIgnoreCase("maxclients")) {
return new Integer(_maxclients);
}
if (name.equalsIgnoreCase("maxthreads")) {
return new Integer(_maxthreads);
}
if (name.equalsIgnoreCase("keepalive")) {
return new Integer(_keepalive);
}
if (name.equalsIgnoreCase("backlog")) {
return new Integer(_backlog);
}
return null;
}
public boolean setPreference(String name, String value)
{
if (name.equalsIgnoreCase("port")) {
setPort(ConfigReader.toInt(value));
} else if (name.equalsIgnoreCase("timeout")) {
setTimeout(ConfigReader.toInt(value));
} else if (name.equalsIgnoreCase("maxclients")) {
setMaxClients(ConfigReader.toInt(value));
} else if (name.equalsIgnoreCase("maxthreads")) {
setMaxThreads(ConfigReader.toInt(value));
} else if (name.equalsIgnoreCase("keepalive")) {
setKeepAlive(ConfigReader.toInt(value));
} else if (name.equalsIgnoreCase("backlog")) {
setBackLog(ConfigReader.toInt(value));
} else {
return false;
}
return true;
}
public Listener createListener()
{
Listener listener = new Listener(this);
listener.start();
return listener;
}
}