WIP étape 2 #3

Manually merged
louis_royer merged 1 commits from WIP_etape2 into master 2020-02-26 19:01:00 +01:00
Collaborator

Dans la seconde étape, on permet à un client de télécharger le fichier depuis plusieurs serveurs. Le fichier sera découpé en plusieurs blocs de tailles égales (par exemple 4 Ko) qui seront téléchargés depuis plusieurs serveurs. Dans cette étape c’est le client qui choisit (par exemple aléatoirement) quel bloc télécharger depuis quel serveur.

Plan de travail :

  • Modifier le protocole pour ajouter des éléments permettant de demander un bloc spécifique
  • Modifier le package protocol pour qu’il puisse gérer les éléments de protocole ajoutés (#9)
    • Changer la version du protocole en 1.2
    • Dans la classe LoadRequest ajouter les nouveaux éléments du protocole
  • Modifier le serveur pour gérer l’envoi de n’importe quel bloc d’un fichier ;
  • Modifier le client pour qu’il puisse demander le téléchargement de n’importe quel bloc et re-créer le fichier complet (on pourra stocker des blocs de fichiers dans $(XDG_CACHE_HOME:-~/.cache)/PROJECT_P2P_CLIENT sous la forme d’un dossier filename.extension et de fichiers offset_end.part par exemple).
  • Modifier le client pour qu’il puisse demander le téléchargement depuis une liste de serveurs (liste entrée par l’utilisateur du client ou bien par la lecture d’un fichier de configuration config.toml dans $(XDG_CONFIG_HOME:-~/.config)/PROJECT_P2P_CLIENT ; faire une nouvelle classe dans le package utils)
  • Modifier le serveur pour qu’il demande à l’utilisateur sur quel port se lancer (faire une nouvelle classe dans le package utils)
  • Tests
    • Tests (avec un fichier plus petit que la taille d’un bloc)
      • avec un seul serveur
      • avec plusieurs serveurs
        • dont plusieurs ont le fichier
        • dont au moins un n’a pas le fichier
    • Tests (avec un fichier assez grand pour qu’il soit divisé en blocs)
      • avec un seul serveur
      • avec plusieurs serveurs
        • dont plusieurs ont le fichier
        • dont au moins un n’a pas le fichier
  • Vérifier que toutes les classes sont toujours documentées intégralement
  • Mise à jour de l’UML
Dans la seconde étape, on permet à un client de télécharger le fichier depuis plusieurs serveurs. Le fichier sera découpé en plusieurs blocs de tailles égales (par exemple 4 Ko) qui seront téléchargés depuis plusieurs serveurs. Dans cette étape c’est le client qui choisit (par exemple aléatoirement) quel bloc télécharger depuis quel serveur. Plan de travail : - [x] Modifier le protocole pour ajouter des éléments permettant de demander un bloc spécifique - [x] Modifier le package `protocol` pour qu’il puisse gérer les éléments de protocole ajoutés (#9) - [x] Changer la version du protocole en `1.2` - [x] Dans la classe `LoadRequest` ajouter les nouveaux éléments du protocole - [x] Modifier le serveur pour gérer l’envoi de n’importe quel bloc d’un fichier ; - [x] Modifier le client pour qu’il puisse demander le téléchargement de n’importe quel bloc et re-créer le fichier complet (on pourra stocker des blocs de fichiers dans `$(XDG_CACHE_HOME:-~/.cache)/PROJECT_P2P_CLIENT` sous la forme d’un dossier `filename.extension` et de fichiers `offset_end.part` par exemple). - [ ] Modifier le client pour qu’il puisse demander le téléchargement depuis une liste de serveurs (liste entrée par l’utilisateur du client ou bien par la lecture d’un fichier de configuration `config.toml` dans `$(XDG_CONFIG_HOME:-~/.config)/PROJECT_P2P_CLIENT` ; faire une nouvelle classe dans le package `utils`) - [ ] Modifier le serveur pour qu’il demande à l’utilisateur sur quel port se lancer (faire une nouvelle classe dans le package `utils`) - [ ] Tests - [ ] Tests (avec un fichier plus petit que la taille d’un bloc) - [ ] avec un seul serveur - [ ] avec plusieurs serveurs - [ ] dont plusieurs ont le fichier - [ ] dont au moins un n’a pas le fichier - [ ] Tests (avec un fichier assez grand pour qu’il soit divisé en blocs) - [ ] avec un seul serveur - [ ] avec plusieurs serveurs - [ ] dont plusieurs ont le fichier - [ ] dont au moins un n’a pas le fichier - [ ] Vérifier que toutes les classes sont toujours documentées intégralement - [ ] Mise à jour de l’UML
louis_royer closed this pull request 2020-02-26 19:01:00 +01:00
louis_royer added the
enhancement
label 2020-03-18 22:43:47 +01:00
Sign in to join this conversation.
No description provided.