package fr.istic.grpc.todo; import java.util.concurrent.*; import java.util.concurrent.atomic.*; import io.grpc.stub.*; import io.grpc.stub.StreamObserver; public class TodoServiceImpl extends TodoServiceGrpc.TodoServiceImplBase { private final ConcurrentHashMap tasks = new ConcurrentHashMap<>(); private final AtomicInteger taskId = new AtomicInteger(); public int generateUniqueTaskId() { return taskId.incrementAndGet(); } @Override public void createTask(Todo.CreateTaskRequest request, StreamObserver responseObserver) { // Créer une tâche en générant un identifiant } @Override public void listTasks(Todo.ListTasksRequest request, StreamObserver responseObserver) { // La réponse est une liste } @Override public void deleteTask(Todo.DeleteTaskRequest request, StreamObserver responseObserver) { // si la tâche existe, on efface, sinon on indique que l'opération est un echec this.tasks.remove(request.id); } }