38 lines
1.1 KiB
Java
38 lines
1.1 KiB
Java
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<String, Todo.TaskResponse> tasks = new ConcurrentHashMap<>();
|
|
private final AtomicInteger taskId = new AtomicInteger();
|
|
|
|
public int generateUniqueTaskId() {
|
|
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
|
|
|
|
}
|
|
|
|
@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);
|
|
}
|
|
|
|
}
|
|
|