Merge branch 'master' of github:jsmaniac/2011-m1s2-ter
This commit is contained in:
commit
f04c6d5124
|
@ -8,6 +8,14 @@ import java.net.URLConnection;
|
|||
import com.google.gson.Gson;
|
||||
import com.google.gson.stream.JsonReader;
|
||||
|
||||
/**
|
||||
* @author Bertrand BRUN
|
||||
*
|
||||
* Cette classe permet de dialoguer avec le serveur de PtiClic pour récupérée soit des parties
|
||||
* soit le score qu'a réalisé un utilisateur.
|
||||
* Elle permet aussi d'envoyer au serveur les parties realiser par l'utilisateur pour que le serveur
|
||||
* puisse insérer la contribution de l'utilisateur, mais aussi pouvoir calculer le score de celui-ci.
|
||||
*/
|
||||
public class Network {
|
||||
|
||||
public enum Action {
|
||||
|
@ -29,11 +37,22 @@ public class Network {
|
|||
private Mode mode;
|
||||
private String serverURL;
|
||||
|
||||
/**
|
||||
* Constructeur
|
||||
*
|
||||
* @param serverURL Chaine de caractères représentant l'URL où se situe le serveur.
|
||||
* @param mode Le type de partie que l'on veut récupérer.
|
||||
*/
|
||||
public Network(String serverURL, Mode mode) {
|
||||
this.mode = mode;
|
||||
this.serverURL = serverURL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette méthode permet de récupérer du serveur un certain nombre de parties.
|
||||
* @param nbGames Le nombre de parties que l'on veut récupérer.
|
||||
* @return
|
||||
*/
|
||||
public Game getGames(int nbGames) {
|
||||
Game game = null;
|
||||
try {
|
||||
|
@ -53,16 +72,23 @@ public class Network {
|
|||
}
|
||||
reader.endArray();
|
||||
reader.close();
|
||||
|
||||
return game;
|
||||
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
return game;
|
||||
}
|
||||
|
||||
/**
|
||||
* Permet la transformation du Json en une instance de Game.
|
||||
*
|
||||
* @param reader Le Json sous forme d'un flux.
|
||||
* @param gson Une instance de Gson.
|
||||
* @return Une nouvelle instance de Game.
|
||||
* @throws IOException
|
||||
*/
|
||||
private Game makeGame(JsonReader reader, Gson gson) throws IOException {
|
||||
int id = -1;
|
||||
int cat1 = -1;
|
||||
|
@ -97,7 +123,30 @@ public class Network {
|
|||
return new Game(id, cat1, cat2, cat3, cat4, center, cloud);
|
||||
}
|
||||
|
||||
public boolean sendGame(Game game) {
|
||||
throw new UnsupportedOperationException();
|
||||
|
||||
/**
|
||||
* Cette méthode permet d'envoyer les parties au serveur pour qu'il puisse les
|
||||
* rajouter à la base de données, et calculer le score.
|
||||
* @param game La partie jouee par l'utilisateur
|
||||
* @return <code>true</code> si on a pu envoyer la partie au serveur <code>false</code> sinon.
|
||||
*/
|
||||
public boolean sendGame(GamePlayed game) {
|
||||
try {
|
||||
URL url = new URL(this.serverURL);
|
||||
URLConnection connection = url.openConnection();
|
||||
connection.addRequestProperty("action", "sendpartie");
|
||||
connection.addRequestProperty("mode", mode.value());
|
||||
|
||||
Gson gson = new Gson();
|
||||
String json = gson.toJson(game);
|
||||
|
||||
connection.addRequestProperty("json", json);
|
||||
|
||||
// TODO : Regarder si il ne faudrait pas que le serveur renvoie une valeur indiquant si l'action c'est bien derouler.
|
||||
connection.connect();
|
||||
} catch (IOException e) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user