Java Globus API: Class BaseServer

org.globus.net
Class BaseServer

java.lang.Object
  |
  +--org.globus.net.BaseServer
All Implemented Interfaces:
Runnable
Direct Known Subclasses:
CallbackHandler, CallbackHandler, GassServer, GateKeeperServer, JobManagerServer

public abstract class BaseServer
extends Object
implements Runnable

This class provides the basics for writing various servers.


Field Summary
protected  ServerSocket _server
           
protected  boolean accept
           
protected  Authorization authorization
           
protected  GSSCredential credentials
           
protected  org.globus.net.AbstractServerDeactivator deactivator
          A handler for the deactivation framework.
protected  Integer gssMode
           
static int SO_TIMEOUT
          Socket timeout in milliseconds.
protected  String url
           
 
Constructor Summary
BaseServer()
           
BaseServer(boolean secure, int port)
           
BaseServer(GSSCredential cred, int port)
           
BaseServer(int port)
           
 
Method Summary
 GSSCredential getCredentials()
           
 String getHostname()
          Returns hostname of this server
 int getPort()
          Returns port of this server
 String getProtocol()
           
 String getURL()
          Returns url of this server
protected abstract  void handleConnection(Socket socket)
          This method needs to be implemented by subclasses.
protected  void initialize()
          This method should be called by all subclasses.
 void registerDefaultDeactivator()
          Registers a default deactivation handler.
 void run()
           
 void setAuthorization(Authorization auth)
           
 void setGssMode(Integer mode)
           
 void shutdown()
          Stops the server but does not stop all the client threads
protected  void start()
          Starts the server.
 void unregisterDefaultDeactivator()
          Unregisters a default deactivation handler.
protected  Socket wrapSocket(Socket socket)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SO_TIMEOUT

public static final int SO_TIMEOUT
Socket timeout in milliseconds.

accept

protected boolean accept

_server

protected ServerSocket _server

url

protected String url

credentials

protected GSSCredential credentials

authorization

protected Authorization authorization

gssMode

protected Integer gssMode

deactivator

protected org.globus.net.AbstractServerDeactivator deactivator
A handler for the deactivation framework.
Constructor Detail

BaseServer

public BaseServer()
           throws IOException

BaseServer

public BaseServer(int port)
           throws IOException

BaseServer

public BaseServer(GSSCredential cred,
                  int port)
           throws IOException

BaseServer

public BaseServer(boolean secure,
                  int port)
           throws IOException
Method Detail

initialize

protected void initialize()
This method should be called by all subclasses.

start

protected void start()
Starts the server.

shutdown

public void shutdown()
Stops the server but does not stop all the client threads

getCredentials

public GSSCredential getCredentials()

getProtocol

public String getProtocol()

getURL

public String getURL()
Returns url of this server
Returns:
url of this server

getPort

public int getPort()
Returns port of this server
Returns:
port number

getHostname

public String getHostname()
Returns hostname of this server
Returns:
hostname

run

public void run()
Specified by:
run in interface Runnable

wrapSocket

protected Socket wrapSocket(Socket socket)
                     throws GSSException

setGssMode

public void setGssMode(Integer mode)

setAuthorization

public void setAuthorization(Authorization auth)

handleConnection

protected abstract void handleConnection(Socket socket)
This method needs to be implemented by subclasses. Optimmaly, it should be a non-blocking call starting a separate thread to handle the client. Note that to start an SSL handshake, you need to call socket.getInput(Output) stream().

registerDefaultDeactivator

public void registerDefaultDeactivator()
Registers a default deactivation handler. It is used to shutdown the server without having a reference to the server. Call Deactivate.deactivateAll() to shutdown all registered servers.

unregisterDefaultDeactivator

public void unregisterDefaultDeactivator()
Unregisters a default deactivation handler.