server.core
Class TCPConnection

java.lang.Object
  extended by java.lang.Thread
      extended by common.StoppableThread
          extended by common.TransfertSlave
              extended by common.TCPHandler
                  extended by server.core.TCPConnection
All Implemented Interfaces:
Runnable

public class TCPConnection
extends TCPHandler

Gère la connexion TCP avec le client.

Lors de la création, le connexion est initialisée et les flux E/S ouverts. Ce gestionnaire assure aussi l'initialisation du transfert avec le client. Ensuite, lorsque le thread est démarré, celui-ci attend des commandes du client et les traite si nécessaire.


Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
Thread.State, Thread.UncaughtExceptionHandler
 
Field Summary
private  TransfertHandler handler
          Gestionnaire de transfert.
 
Fields inherited from class common.TCPHandler
inputStream, TIME_WAITING_TRANSFERT_CLOSING
 
Fields inherited from class common.TransfertSlave
master
 
Fields inherited from class common.StoppableThread
quitQuery
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
TCPConnection(TransfertMaster master, TransfertHandler handler, Socket tcpSocket)
          Initialise le transfert avec le client lors d'une nouvelle connexion.
 
Method Summary
 void doQuit()
          Fait fermer le thread en arrêtant la connexion TCP.
 void finalizeTransfert(boolean success)
          Finalise un transfert réussi ou échoué.
 void requestOffset(long offset)
          Demande au client le renvoi d'un paquet perdu.
 void run()
          Méthode principale du thread.
 
Methods inherited from class common.TCPHandler
doFree, quit, sendCommand, sendCommand
 
Methods inherited from class common.StoppableThread
free
 
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

handler

private final TransfertHandler handler
Gestionnaire de transfert.

Constructor Detail

TCPConnection

public TCPConnection(TransfertMaster master,
                     TransfertHandler handler,
                     Socket tcpSocket)
              throws SocketStartFailure
Initialise le transfert avec le client lors d'une nouvelle connexion.

Parameters:
master - objet maître.
handler - gestionnaire de transfert.
tcpSocket - connexion TCP d'un nouveau client.
Throws:
SocketStartFailure - si une erreur survient lors de l'initialisation du transfert.
Method Detail

finalizeTransfert

public void finalizeTransfert(boolean success)
Finalise un transfert réussi ou échoué.

Parameters:
success - succès du transfert (vrai si le transfert à réussi).

doQuit

public void doQuit()
Fait fermer le thread en arrêtant la connexion TCP.

Overrides:
doQuit in class StoppableThread
See Also:
Thread.run(), StoppableThread.quitQuery, StoppableThread.quit()

requestOffset

public void requestOffset(long offset)
Demande au client le renvoi d'un paquet perdu.

Parameters:
offset - offset du paquet à renvoyer.

run

public void run()
Méthode principale du thread. Traite les commandes du client.

Specified by:
run in interface Runnable
Overrides:
run in class Thread