client.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. /*
  2. * File: client.h
  3. * Author: Arthur Brandao
  4. *
  5. * Created on 21 novembre 2018
  6. */
  7. #ifndef CLIENT_H
  8. #define CLIENT_H
  9. /* --- Include --- */
  10. #include "constante.h"
  11. #include "server.h"
  12. /* --- Strcutures --- */
  13. typedef struct{
  14. int id; //Id unique du client
  15. Server main; //Connexion principale entre le client et le serveur
  16. Server notify; //Connexion pour notifier le client
  17. }Client;
  18. typedef struct ClientNode ClientNode;
  19. struct ClientNode{
  20. boolean empty;
  21. Client* cli;
  22. ClientNode* next;
  23. };
  24. typedef struct{
  25. int length;
  26. ClientNode* tab;
  27. }ClientList;
  28. /* --- Fonctions --- */
  29. /**
  30. * Ajoute un client dans lalsite
  31. * @param Server Le serveur TCP à utiliser pour la connexion principale
  32. * @param Server Le serveur TCP à utiliser pour notifier le client
  33. * @return int L'id du client
  34. */
  35. int add_client(Server, Server);
  36. /**
  37. * Retourne un client
  38. * @param int L'id du client
  39. * @return Client* Le client
  40. */
  41. Client* get_client(int);
  42. /**
  43. * Supprime un client
  44. * @param int L'id du client
  45. */
  46. void remove_client(int);
  47. /**
  48. * Vide la liste des clients
  49. */
  50. void clean_clientlist();
  51. /**
  52. * Retourne le nombre de client actuel dans la liste
  53. * @return int Le nombre de client
  54. */
  55. int get_number_client();
  56. #endif /* CLIENT_H */