deletTask

This commit is contained in:
trochas
2025-04-04 12:56:43 +02:00
5 changed files with 50 additions and 19 deletions

View File

@@ -1 +1,3 @@
# Votre compte rendu ici
On implémente des "Class" dans les .proto, des getter seront généré par grpc

View File

@@ -11,9 +11,9 @@ public class EchoClient {
public static void main(String[] args) throws Exception {
ManagedChannel channel = ManagedChannelBuilder
.forAddress("localhost", 8080) //serveur localhost, port 8080
.usePlaintext() // on demande a ne pas utiliser tls
.build(); // pattern builder
.forAddress("localhost", 8080) //serveur localhost, port 8080
.usePlaintext() // on demande a ne pas utiliser tls
.build(); // pattern builder
//On utilise un stub bloquant pour faire la requête (on bloque jusqu'à réponse)
EchoServiceGrpc.EchoServiceBlockingStub stub = EchoServiceGrpc.newBlockingStub(channel);
@@ -25,7 +25,6 @@ public class EchoClient {
// On affiche le résultat
System.out.println("Reçu : " + response.getMessage());
channel.shutdown();
}
channel.shutdown();
}
}

View File

@@ -1,9 +1,29 @@
package fr.istic.grpc.todo;
import fr.istic.grpc.echo.Echo;
import fr.istic.grpc.echo.EchoServiceGrpc;
import fr.istic.grpc.todo.Todo.*;
import fr.istic.grpc.todo.TodoServiceGrpc.*;
import io.grpc.*;
public class TodoClient {
public static void main(String[] args) throws Exception {
ManagedChannel channel = ManagedChannelBuilder
.forAddress("localhost", 8080) //serveur localhost, port 8080
.usePlaintext() // on demande a ne pas utiliser tls
.build(); // pattern builder
//On utilise un stub bloquant pour faire la requête (on bloque jusqu'à réponse)
TodoServiceGrpc.TodoServiceBlockingStub stub = TodoServiceGrpc.newBlockingStub(channel);
//On construit la requête :
Echo.MessageSent request = Echo.MessageSent.newBuilder().setMessage("ilililili").build();
// On appelle le serveur :
//Echo.MessageReceive response = stub.echo(request);
// On affiche le résultat
//System.out.println("Reçu : " + response.getMessage());
channel.shutdown();
}
}

View File

@@ -1,5 +1,6 @@
package fr.istic.grpc.todo;
import io.grpc.stub.*;
import java.util.concurrent.*;
import java.util.concurrent.atomic.*;
import io.grpc.stub.*;
@@ -14,23 +15,32 @@ public class TodoServiceImpl extends TodoServiceGrpc.TodoServiceImplBase {
return taskId.incrementAndGet();
}
@Override
public void createTask(Todo.CreateTaskRequest request, StreamObserver<Todo.TaskResponse> responseObserver) {
// Créer une tâche en générant un identifiant
Todo.TaskResponse tr = Todo.TaskResponse.newBuilder().setId(Integer.toString(generateUniqueTaskId()))
.setDescription(request.getDescription()).build();
responseObserver.onNext(tr);
responseObserver.onCompleted();
}
@Override
public void listTasks(Todo.ListTasksRequest request, StreamObserver<Todo.ListTasksResponse> responseObserver) {
// La réponse est une liste
}
@Override
public void deleteTask(Todo.DeleteTaskRequest request, StreamObserver<Todo.TaskResponse> responseObserver) {
// si la tâche existe, on efface, sinon on indique que l'opération est un echec
this.tasks.remove(request.id);
String id = request.getId();
Boolean test = this.tasks.containsKey(id);
Todo.TaskResponse save = this.tasks.get(id);
this.tasks.remove(id);
test = test && !this.tasks.containsKey(id);
Todo.TaskResponse tr = Todo.TaskResponse.newBuilder()
.setId(save.getId()).setDescription(save.getDescription())
.setTitle(save.getTitle())
.setSuccess(test).build();
responseObserver.onNext(tr);
responseObserver.onCompleted();
}
}

View File

@@ -5,9 +5,9 @@ option java_package = "fr.istic.grpc.todo";
// Le service TodoService définit les opérations disponibles pour gérer les tâches.
service TodoService {
rpc Todo(CreateTaskRequest) return (TaskResponse)
rpc Todo(ListTasksRequest) return (ListTasksResponse)
rpc Todo(DeleteTask) return (TaskResponse)
rpc Create(CreateTaskRequest) returns (TaskResponse){}
rpc View(ListTasksRequest) returns (ListTasksResponse){}
rpc Delete(DeleteTaskRequest) returns (TaskResponse){}
}
// Message de requête pour créer une nouvelle tâche.