org.jafer.zserver
Class Session

java.lang.Object
  extended by java.lang.Thread
      extended by org.jafer.zserver.ZServerThread
          extended by org.jafer.zserver.Session
All Implemented Interfaces:
java.io.Serializable, java.lang.Runnable

public class Session
extends ZServerThread

Sets up session and waits for request PDUs. Each new request is handled by relevant operation in a new thread. Checks authentication and can operate in concurrent mode using org.jafer.zserver.util.Lock class

Version:
1.0
Author:
Antony Corfield; Matthew Dovey; Colin Tatham
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
 
Field Summary
private  Authenticate authenticate
           
private  boolean authenticated
           
private  java.lang.String clientInfo
           
private  int clientVersion
           
private  boolean concurrent
           
private  DatabeanFactory databeanFactory
           
private  java.util.Hashtable databeans
           
private  int exceptionalRecordSize
           
private  java.util.Hashtable locks
           
private  PDUDriver pduDriver
           
private  int preferredMessageSize
           
private  java.net.Socket socket
           
 
Fields inherited from class org.jafer.zserver.ZServerThread
logger, STATE_RUNNING, STATE_STOPPED, STATE_STOPPING
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
Session(java.net.Socket socket, int timeout, DatabeanFactory databeanFactory, Authenticate authenticate)
           
 
Method Summary
private  void cleanUpDatabeans()
           
 void close()
           
 boolean containsDatabean(java.lang.String name)
           
 void freeDatabean(java.lang.String name)
           
 boolean getAuthenticated()
           
 java.lang.String getClientAddress()
           
 java.lang.String getClientInfo()
           
 int getClientVersion()
           
 Databean getDatabean()
           
 java.lang.Object getDatabean(java.lang.String name)
           
 int getExceptionalRecordSize()
           
 int getLocalPort()
           
 PDUDriver getPDUDriver()
           
 int getPort()
           
 int getPreferredMessageSize()
           
 boolean isConcurrent()
           
 void lockDatabean(java.lang.String name)
           
 void removeAllDatabeans()
           
 void removeDatabean(java.lang.String name)
           
 void run()
           
 void setAuthenticated(java.lang.String user, java.lang.String group, java.lang.String password)
           
 void setClientInfo(java.lang.String clientInfo)
           
 void setClientVersion(int clientVersion)
           
 void setConcurrent(boolean concurrent)
           
 void setDatabean(java.lang.String name, java.lang.Object databean)
           
 void setExceptionalRecordSize(int exceptionalRecordSize)
           
 void setPDUDriver(PDUDriver pduDriver)
           
 void setPreferredMessageSize(int preferredMessageSize)
           
 
Methods inherited from class org.jafer.zserver.ZServerThread
getActiveThreads, getNumberOfActiveThreads, getServerThreadId, getServerThreadState, getStartTime, getThreads, getUpTime, halt, hasThreads, isStopped, isStopping, purgeThreads, setStartTime, setStopped, setStopping, setThreadName, setThreads, startThread
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

socket

private java.net.Socket socket

databeanFactory

private DatabeanFactory databeanFactory

pduDriver

private PDUDriver pduDriver

authenticate

private Authenticate authenticate

databeans

private java.util.Hashtable databeans

locks

private java.util.Hashtable locks

preferredMessageSize

private int preferredMessageSize

exceptionalRecordSize

private int exceptionalRecordSize

clientVersion

private int clientVersion

clientInfo

private java.lang.String clientInfo

concurrent

private boolean concurrent

authenticated

private boolean authenticated
Constructor Detail

Session

public Session(java.net.Socket socket,
               int timeout,
               DatabeanFactory databeanFactory,
               Authenticate authenticate)
        throws java.io.IOException
Throws:
java.io.IOException
Method Detail

run

public void run()
Specified by:
run in interface java.lang.Runnable
Overrides:
run in class java.lang.Thread

close

public void close()
Overrides:
close in class ZServerThread

getPort

public int getPort()

getLocalPort

public int getLocalPort()

getClientAddress

public java.lang.String getClientAddress()

setAuthenticated

public void setAuthenticated(java.lang.String user,
                             java.lang.String group,
                             java.lang.String password)

getAuthenticated

public boolean getAuthenticated()

setPreferredMessageSize

public void setPreferredMessageSize(int preferredMessageSize)

getPreferredMessageSize

public int getPreferredMessageSize()

setExceptionalRecordSize

public void setExceptionalRecordSize(int exceptionalRecordSize)

getExceptionalRecordSize

public int getExceptionalRecordSize()

setClientVersion

public void setClientVersion(int clientVersion)

getClientVersion

public int getClientVersion()

setClientInfo

public void setClientInfo(java.lang.String clientInfo)

getClientInfo

public java.lang.String getClientInfo()

setPDUDriver

public void setPDUDriver(PDUDriver pduDriver)

getPDUDriver

public PDUDriver getPDUDriver()

setConcurrent

public void setConcurrent(boolean concurrent)

isConcurrent

public boolean isConcurrent()

containsDatabean

public boolean containsDatabean(java.lang.String name)

getDatabean

public Databean getDatabean()

lockDatabean

public void lockDatabean(java.lang.String name)
                  throws JaferException
Throws:
JaferException

freeDatabean

public void freeDatabean(java.lang.String name)
                  throws JaferException
Throws:
JaferException

getDatabean

public java.lang.Object getDatabean(java.lang.String name)

setDatabean

public void setDatabean(java.lang.String name,
                        java.lang.Object databean)
                 throws JaferException
Throws:
JaferException

removeDatabean

public void removeDatabean(java.lang.String name)
                    throws JaferException
Throws:
JaferException

removeAllDatabeans

public void removeAllDatabeans()
                        throws JaferException
Throws:
JaferException

cleanUpDatabeans

private void cleanUpDatabeans()