Class SessionClavardage

java.lang.Object
java.lang.Thread
chatapp.Protocol.SessionClavardage
All Implemented Interfaces:
java.lang.Runnable

public class SessionClavardage
extends java.lang.Thread

Classe représentant une session de clavardage.
La classe hérite de la classe Thread et dispose de 2 constructeurs selon que l'on initie une demande de session ou que l'on recoit une demande.
Elle possède en attribut:
- link : la socket associée à la session de clavardage
- app : L'instance de chatapp
- u2: l'utilisateur avec lequel on communique
- out: le flux de donnees sortant
- in: le flux de donnees entrant
- pcs: Le PropertyChangeSupport permettant d'envoyer les notifications de MessageRecu et de FindeSession
- derniersMsg: la liste temporaire des derniers messages recus

  • Nested Class Summary

    Nested classes/interfaces inherited from class java.lang.Thread

    java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
  • Field Summary

    Fields inherited from class java.lang.Thread

    MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
  • Constructor Summary

    Constructors 
    Constructor Description
    SessionClavardage​(Utilisateur u2, ChatApp app)
    Le constructeur associe a l'envoi d'une requete TCP, lorsque que l'on veut initier une session de clavardage avec un utilisateur connecte
    SessionClavardage​(java.net.Socket link, ChatApp app)
    Ce constructeur crée une session de clavardage quand on recoit une requete
  • Method Summary

    Modifier and Type Method Description
    void addPropertyChangeListener​(java.beans.PropertyChangeListener pcl)
    Permet aux PropertyChangeListener de s'abonner aux notifications des evenements
    void arretSession()
    Methode permettant d'arreter cette session de clavardage et de prevenir l'autre utilisateur de la fin de la session
    void envoiMsg​(java.lang.String msg)
    Methode transformant prenant un string pour le transmettre sous la forme d'un message horodate a l'utilisateur distant
    ChatApp getApp()
    Getter : chatApp
    MessageHorodate getDernierMsg()
    Methode permettant de recuperer le dernier message recu qui a ete mis dans la liste des messages recus.
    java.io.ObjectInputStream getIn()
    Getter : In
    java.io.ObjectOutputStream getOut()
    Getter : Out
    Utilisateur getU2()
    Getter : Utilisateur 2
    void initierSession()
    Methode permettant d'initier une session de clavardage et de prevenir l'autre utilisateur du debut de la session
    void run()
    Methode lancee par le thread, permet de receptionner les messages horodates recus et d'agir en conséquence selon le type de message recu
    void setApp​(ChatApp app)
    Setter : chatApp
    void setIn​(java.io.ObjectInputStream in)
    Setter : In
    void setLink​(java.net.Socket link)
    Setter : Link
    void setOut​(java.io.ObjectOutputStream out)
    Setter : Out
    void setU2​(Utilisateur u2)
    Setter : Utilisateur 2

    Methods inherited from class java.lang.Thread

    activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, suspend, toString, yield

    Methods inherited from class java.lang.Object

    equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • SessionClavardage

      public SessionClavardage​(java.net.Socket link, ChatApp app)

      Ce constructeur crée une session de clavardage quand on recoit une requete

      Parameters:
      link - La socket associee a la requete TCP que l'on a recu
      app - L'instance de chatapp
    • SessionClavardage

      public SessionClavardage​(Utilisateur u2, ChatApp app)

      Le constructeur associe a l'envoi d'une requete TCP, lorsque que l'on veut initier une session de clavardage avec un utilisateur connecte

      Parameters:
      u2 - L'utilisateur avec qui l'on souhaite démarrer une session de clavardage
      app - L'instance de chataap associee
  • Method Details

    • addPropertyChangeListener

      public void addPropertyChangeListener​(java.beans.PropertyChangeListener pcl)
      Permet aux PropertyChangeListener de s'abonner aux notifications des evenements
      Parameters:
      pcl - Le PropertyListener qui souhaite s'abonner sur ce PropertyChangeSupport
    • arretSession

      public void arretSession()

      Methode permettant d'arreter cette session de clavardage et de prevenir l'autre utilisateur de la fin de la session

    • initierSession

      public void initierSession()

      Methode permettant d'initier une session de clavardage et de prevenir l'autre utilisateur du debut de la session

    • envoiMsg

      public void envoiMsg​(java.lang.String msg)
      Methode transformant prenant un string pour le transmettre sous la forme d'un message horodate a l'utilisateur distant
      Parameters:
      msg - Le texte du message à envoyer
    • getDernierMsg

      public MessageHorodate getDernierMsg()

      Methode permettant de recuperer le dernier message recu qui a ete mis dans la liste des messages recus.
      Utilisée par l'interface graphique qui a ete avertie grace au PropertyChangeSupport

      Returns:
      Le dernier message horodate recu
    • run

      public void run()

      Methode lancee par le thread, permet de receptionner les messages horodates recus et d'agir en conséquence selon le type de message recu

      Specified by:
      run in interface java.lang.Runnable
      Overrides:
      run in class java.lang.Thread
    • getOut

      public java.io.ObjectOutputStream getOut()
      Getter : Out
      Returns:
      Le flux d'ecriture des messages sortant
    • setOut

      public void setOut​(java.io.ObjectOutputStream out)
      Setter : Out
      Parameters:
      out - Le flux d'ecriture des messages sortant
    • getIn

      public java.io.ObjectInputStream getIn()
      Getter : In
      Returns:
      Le flux de lecture des messages entrant
    • setIn

      public void setIn​(java.io.ObjectInputStream in)
      Setter : In
      Parameters:
      in - Le flux de lecture des messages entrant
    • setLink

      public void setLink​(java.net.Socket link)
      Setter : Link
      Parameters:
      link - La Socket asscciee a la connexion TCP et donc a la session
    • getApp

      public ChatApp getApp()
      Getter : chatApp
      Returns:
      L'instance de chatApp
    • setApp

      public void setApp​(ChatApp app)
      Setter : chatApp
      Parameters:
      app - L'instance de chatApp
    • getU2

      public Utilisateur getU2()
      Getter : Utilisateur 2
      Returns:
      L'utilisateur avec lequel on communique
    • setU2

      public void setU2​(Utilisateur u2)
      Setter : Utilisateur 2
      Parameters:
      u2 - L'utilisateur avec lequel on communique