server.core
Class TransfertHandler

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

public class TransfertHandler
extends ThreadStopper

Gère un transfert.

Initialise le transfert avec le client en échangeant avec le client les caractéristiques du fichier à transférer.


Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
Thread.State, Thread.UncaughtExceptionHandler
 
Field Summary
private  TCPConnection clientConnection
          Gestionnaire de la connexion avec le client.
private  FileOutput fileWriter
          Gestionnaire de l'écriture des offsets reçus.
 Hashtable<Long,byte[]> receivedOffsets
          Table des offsets reçus.
private  ServerScheduler scheduler
          Ordonnanceur du serveur.
private static long TIME_WAITING_TRANSFERING
          Temps d'attente de la fin du transfert par le gestionnaire.
 byte transfertID
          ID de ce transfert.
 
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
TransfertHandler(TransfertMaster master, ServerScheduler scheduler, byte transfertID, Socket tcpConnection)
          Initialise un nouveau transfert avec la nouvelle connexion TCP reçue.
 
Method Summary
protected  void doFree()
          Prends les dispositions pour libérer les ressources utilisées dans cette classe.
 void doQuit()
          Prends les dispositions pour que le thread termine et sorte seul de sa méthode run().
 TCPConnection getClientConnection()
          Accède au gestionnaire de connexion avec le client.
 FileOutput getFileWriter()
          Accède au gestionnaire du fichier.
 File getIncomingDir()
          Donne le dossier où stocker les fichiers reçus.
 void run()
           
 
Methods inherited from class common.ThreadStopper
quitThreadAndWait
 
Methods inherited from class common.StoppableThread
free, quit
 
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

TIME_WAITING_TRANSFERING

private static final long TIME_WAITING_TRANSFERING
Temps d'attente de la fin du transfert par le gestionnaire. La connexion TCP ou le gestionnaire de fichier sont prevenus de la fin du transfert, qui prévient à son tour l'ordonnanceur.

See Also:
Constant Field Values

receivedOffsets

public final Hashtable<Long,byte[]> receivedOffsets
Table des offsets reçus. Les offsets reçus sont ajoutés par UDPListener et supprimés lors de l'écriture par FileOutput.


transfertID

public final byte transfertID
ID de ce transfert.


scheduler

private final ServerScheduler scheduler
Ordonnanceur du serveur.


fileWriter

private FileOutput fileWriter
Gestionnaire de l'écriture des offsets reçus.


clientConnection

private TCPConnection clientConnection
Gestionnaire de la connexion avec le client.

Constructor Detail

TransfertHandler

public TransfertHandler(TransfertMaster master,
                        ServerScheduler scheduler,
                        byte transfertID,
                        Socket tcpConnection)
Initialise un nouveau transfert avec la nouvelle connexion TCP reçue.

Parameters:
master - objet maître.
transfertID - ID du transfert.
tcpConnection - connexion TCP attribuée à ce transfert.
Method Detail

getFileWriter

public FileOutput getFileWriter()
Accède au gestionnaire du fichier.

Returns:
gestionnaire de fichier de ce transfert.

getClientConnection

public TCPConnection getClientConnection()
Accède au gestionnaire de connexion avec le client.

Returns:
gestionnaire de connexion avec le client.

doFree

protected void doFree()
Description copied from class: StoppableThread
Prends les dispositions pour libérer les ressources utilisées dans cette classe.

Overrides:
doFree in class StoppableThread
See Also:
Thread.run(), StoppableThread.isFree, StoppableThread.free()

doQuit

public void doQuit()
Description copied from class: StoppableThread
Prends les dispositions pour que le thread termine et sorte seul de sa méthode run().

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

run

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

getIncomingDir

public File getIncomingDir()
Donne le dossier où stocker les fichiers reçus.

Returns:
chemin du dossier réception.