mirror of
https://github.com/yoboujon/tsock.git
synced 2025-06-08 14:00:50 +02:00
Ajout de commentaires dans bal.h pour préciser ce que chaque structure/fonction font.
This commit is contained in:
parent
28970838a2
commit
9fed5740f9
1 changed files with 165 additions and 6 deletions
171
header/bal.h
171
header/bal.h
|
@ -3,55 +3,209 @@
|
||||||
|
|
||||||
#include "tsock.h"
|
#include "tsock.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Fonction de test pour les différentes primitive de bal.h
|
||||||
|
* Inutilisée sur le programme final.
|
||||||
|
*
|
||||||
|
* @return int -> 0 si réussite
|
||||||
|
*/
|
||||||
int bal(void);
|
int bal(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @struct messageBAL
|
||||||
|
* @brief definition de la structure d'un message BAL
|
||||||
|
*
|
||||||
|
* @var messageBAL::data
|
||||||
|
* Messgae sous forme d'un tableau de caractère
|
||||||
|
* @var messageBAL::tailleData
|
||||||
|
* Taille du message
|
||||||
|
* @var messageBAL::idEmetteur
|
||||||
|
* Numéro de l'émetteur qui a envoyé le message
|
||||||
|
*/
|
||||||
typedef struct{
|
typedef struct{
|
||||||
char *data;
|
char *data;
|
||||||
int tailleData;
|
int tailleData;
|
||||||
int idEmetteur;
|
int idEmetteur;
|
||||||
}messageBAL;
|
}messageBAL;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @struct elementMessage
|
||||||
|
* @brief Element dans une liste de Messages
|
||||||
|
*
|
||||||
|
* @var elementMessage::messageBALActuel
|
||||||
|
* Pointeur vers le message de l'élément
|
||||||
|
* @var elementMessage::suiv
|
||||||
|
* Pointeur vers le prochain élément
|
||||||
|
*/
|
||||||
struct elementMessage{
|
struct elementMessage{
|
||||||
messageBAL * messageBALActuel;
|
messageBAL * messageBALActuel;
|
||||||
struct elementMessage * suiv;
|
struct elementMessage * suiv;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @struct listeMessage
|
||||||
|
* @brief Liste d'éléments messages
|
||||||
|
*
|
||||||
|
* @var listeMessage::debut
|
||||||
|
* Pointeur vers le premier élément
|
||||||
|
* @var listeMessage::courant
|
||||||
|
* Pointeur vers l'élément sélectionné
|
||||||
|
* @var listeMessage::fin
|
||||||
|
* Pointeur vers l'élément final
|
||||||
|
*/
|
||||||
struct listeMessage{
|
struct listeMessage{
|
||||||
struct elementMessage * debut;
|
struct elementMessage * debut;
|
||||||
struct elementMessage * courant;
|
struct elementMessage * courant;
|
||||||
struct elementMessage * fin;
|
struct elementMessage * fin;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @struct BAL
|
||||||
|
* @brief definition de la structure d'une Boite aux Lettres
|
||||||
|
*
|
||||||
|
* @var BAL::idRecepteur
|
||||||
|
* Numéro du recepteur ayant reçu les messages
|
||||||
|
* @var BAL::actualMessages
|
||||||
|
* Liste pointant sur les messages reçus
|
||||||
|
*/
|
||||||
typedef struct{
|
typedef struct{
|
||||||
int idRecepteur;
|
int idRecepteur;
|
||||||
struct listeMessage * actualMessages;
|
struct listeMessage * actualMessages;
|
||||||
}BAL;
|
}BAL;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @struct elementBAL
|
||||||
|
* @brief Element dans une liste de Messages
|
||||||
|
*
|
||||||
|
* @var elementBAL::BALActuel
|
||||||
|
* Pointeur vers la boite aux lettres de l'élément
|
||||||
|
* @var elementBAL::suiv
|
||||||
|
* Pointeur vers le prochain élément
|
||||||
|
*/
|
||||||
struct elementBAL{
|
struct elementBAL{
|
||||||
BAL * BALActuel;
|
BAL * BALActuel;
|
||||||
struct elementBAL * suiv;
|
struct elementBAL * suiv;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @struct listeBAL
|
||||||
|
* @brief Liste d'éléments BAL
|
||||||
|
*
|
||||||
|
* @var listeBAL::debut
|
||||||
|
* Pointeur vers le premier élément
|
||||||
|
* @var listeBAL::courant
|
||||||
|
* Pointeur vers l'élément sélectionné
|
||||||
|
* @var listeBAL::fin
|
||||||
|
* Pointeur vers l'élément final
|
||||||
|
*/
|
||||||
struct listeBAL{
|
struct listeBAL{
|
||||||
struct elementBAL * debut;
|
struct elementBAL * debut;
|
||||||
struct elementBAL * courant;
|
struct elementBAL * courant;
|
||||||
struct elementBAL * fin;
|
struct elementBAL * fin;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Permet l'initialisation d'une struture messageBAL avec un message et un idEmetteur donné.
|
||||||
|
*
|
||||||
|
* @param data char*, chaîne de caractère de la donnée.
|
||||||
|
* @param idEmetteur int, numéro de l'émetteur du message.
|
||||||
|
* @return messageBAL* message initialisé avec les paramètres donnés.
|
||||||
|
*/
|
||||||
messageBAL * creeMessage(char *data,int idEmetteur);
|
messageBAL * creeMessage(char *data,int idEmetteur);
|
||||||
struct elementMessage * initElementMessage(void);
|
|
||||||
struct listeMessage * initListeMessage(void);
|
|
||||||
void ajoutListeMessage(struct listeMessage * listeActuel,messageBAL * leMessage);
|
|
||||||
void afficheListeMessage(struct listeMessage listeActuel);
|
|
||||||
int bal(void);
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Initialise la structure elementMessage avec un malloc.
|
||||||
|
* L'élément crée renvoi vers une adresse NULL.
|
||||||
|
*
|
||||||
|
* @return struct elementMessage* element initialisé
|
||||||
|
*/
|
||||||
|
struct elementMessage * initElementMessage(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Initialise plusieurs éléments (debut,courant et fin) avec initElementMessage().
|
||||||
|
*
|
||||||
|
* @return struct listeMessage* liste de message NULL mais alloué.
|
||||||
|
*/
|
||||||
|
struct listeMessage * initListeMessage(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Ajoute un message dans la liste de message :
|
||||||
|
* Mets à jour le pointeur courant ainsi que debut.
|
||||||
|
*
|
||||||
|
* @param listeActuel struct listeMessage *,la liste à modifier.
|
||||||
|
* @param leMessage messageBAL*, pointeur sur le message à ajouter à la liste.
|
||||||
|
*/
|
||||||
|
void ajoutListeMessage(struct listeMessage * listeActuel,messageBAL * leMessage);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Affiche l'intégralité des Messages pour tous les Emetteurs.
|
||||||
|
*
|
||||||
|
* @param listeActuel struct listeMessage, liste à afficher.
|
||||||
|
*/
|
||||||
|
void afficheListeMessage(struct listeMessage listeActuel);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Permet l'initialisation d'une struture BAL avec un idRecepteur et un messageRecepteur donné.
|
||||||
|
*
|
||||||
|
* @param idRecepteur int, numéro du recepteur.
|
||||||
|
* @param messageRecepteur struct listeMessage*, liste des messages du recepteur.
|
||||||
|
* @return BAL* boite aux lettres initialisée avec les paramètres donnés.
|
||||||
|
*/
|
||||||
BAL * creerBAL(int idRecepteur, struct listeMessage * messageRecepteur);
|
BAL * creerBAL(int idRecepteur, struct listeMessage * messageRecepteur);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Initialise la structure elementBAL avec un malloc.
|
||||||
|
* L'élément crée renvoi vers une adresse NULL.
|
||||||
|
*
|
||||||
|
* @return struct elementBAL* element initialisé
|
||||||
|
*/
|
||||||
struct elementBAL * initElementBAL(void);
|
struct elementBAL * initElementBAL(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Initialise plusieurs éléments (debut,courant et fin) avec initElementBAL().
|
||||||
|
*
|
||||||
|
* @return struct listeBAL liste de Boite aux lettres NULLes mais allouées.
|
||||||
|
*/
|
||||||
struct listeBAL initListeBAL(void);
|
struct listeBAL initListeBAL(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Ajoute une boite aux letres dans la liste de BAL :
|
||||||
|
* Mets à jour le pointeur courant ainsi que debut.
|
||||||
|
*
|
||||||
|
* @param listeActuel struct listeBAL *,la liste à modifier.
|
||||||
|
* @param leMessage BAL*, pointeur sur la boite aux lettres à ajouter à la liste.
|
||||||
|
*/
|
||||||
void ajoutListeBAL(struct listeBAL * listeActuel,BAL * laBoiteAuxLettres);
|
void ajoutListeBAL(struct listeBAL * listeActuel,BAL * laBoiteAuxLettres);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Affiche l'intégralité de la Boite Aux Lettres pour tous les Récepteurs.
|
||||||
|
* Utilisation de la fonction afficheListeMessage
|
||||||
|
*
|
||||||
|
* @param listeActuel struct listeBAL, liste à afficher.
|
||||||
|
*/
|
||||||
void afficheListeBAL(struct listeBAL listeActuel);
|
void afficheListeBAL(struct listeBAL listeActuel);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Permet de vérifier si un idRecepteur existe dans une liste de Boite Aux Lettres donnée
|
||||||
|
* Ne modifie pas le pointeur courant mais parcours toute la liste. Modifie le boolRetour pour savoir si c'est vrai ou non.
|
||||||
|
* Renvoi l'élément correspondant si c'est le cas. Renvoi un élément vide sinon.
|
||||||
|
*
|
||||||
|
* @param listeActuel struct listeBAL, la liste à vérifier
|
||||||
|
* @param idRecepteur int, idRecepteur à vérifier.
|
||||||
|
* @param boolRetour bool*, 1->Element retourné trouvé dans la liste, 0->Element NULL, non trouvé dans la liste
|
||||||
|
* @return struct elementBAL*, element trouvé si dans la liste, NULL sinon.
|
||||||
|
*/
|
||||||
struct elementBAL * existInListBAL(struct listeBAL listeActuel, int idRecepteur, bool * boolRetour);
|
struct elementBAL * existInListBAL(struct listeBAL listeActuel, int idRecepteur, bool * boolRetour);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Crée un nouveau message dans la liste de Boite Aux Lettres.
|
||||||
|
* Utilisation de la fonction existInListBAL() -> Créer une nouvelle BAL si le recepteur n'existe pas.
|
||||||
|
*
|
||||||
|
* @param b struct listeBAL*, la liste à modifier.
|
||||||
|
* @param idEmetteur int, le numéro de l'émetteur qui a envoyé le message.
|
||||||
|
* @param idRecepteur int, le numéro du recepteur qui va recevoir ce message.
|
||||||
|
* @param data char*, le message reçu.
|
||||||
|
*/
|
||||||
void nouveauMessage(struct listeBAL * b,int idEmetteur,int idRecepteur,char *data);
|
void nouveauMessage(struct listeBAL * b,int idEmetteur,int idRecepteur,char *data);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -65,7 +219,12 @@ void nouveauMessage(struct listeBAL * b,int idEmetteur,int idRecepteur,char *dat
|
||||||
*/
|
*/
|
||||||
struct listeMessage * getMessages(struct listeBAL b, int idRecepteur);
|
struct listeMessage * getMessages(struct listeBAL b, int idRecepteur);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief [WIP] Permet de renvoyer les trames de chaque messages présentent dans la boîte aux lettres
|
||||||
|
* suivant le protocole de l'application.
|
||||||
|
*
|
||||||
|
* @param l struct listeMessage, la liste à envoye via TCP.
|
||||||
|
*/
|
||||||
void formatListMessage(struct listeMessage l);
|
void formatListMessage(struct listeMessage l);
|
||||||
|
|
||||||
#endif
|
#endif
|
Loading…
Add table
Reference in a new issue