From 968cc17e438008782f72774ef1649fa6753cd48b Mon Sep 17 00:00:00 2001 From: Yohan Boujon Date: Tue, 17 Jan 2023 23:51:46 +0100 Subject: [PATCH] =?UTF-8?q?Ajout=20de=20getMessages=20qui=20r=C3=A9cup?= =?UTF-8?q?=C3=A8re=20une=20liste=20de=20message=20=C3=A0=20partir=20d'un?= =?UTF-8?q?=20id=20recepteur.=20formatListMessage=20formate=20chaque=20mes?= =?UTF-8?q?sage=20et=20l'envoi=20au=20client.=20(WIP)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- header/bal.h | 11 +++++++++++ src/bal.c | 44 +++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 54 insertions(+), 1 deletion(-) diff --git a/header/bal.h b/header/bal.h index d97310e..e7e64dc 100644 --- a/header/bal.h +++ b/header/bal.h @@ -50,5 +50,16 @@ void afficheListeBAL(struct listeBAL listeActuel); struct elementBAL * existInListBAL(struct listeBAL listeActuel, int idRecepteur, bool * boolRetour); void nouveauMessage(struct listeBAL * b,int idEmetteur,int idRecepteur,char *data); +/** + * @brief Récupère la liste de message d'un recepteur précis + * Attention de vérifier si la liste est vide -> si c'est le cas, + * alors le recepteur n'existe pas. + * + * @param b liste de BoîteAuxLettres + * @param idRecepteur + * @return struct listeMessage* + */ +struct listeMessage * getMessages(struct listeBAL b, int idRecepteur); +void formatListMessage(struct listeMessage l); #endif \ No newline at end of file diff --git a/src/bal.c b/src/bal.c index f74ca0b..a1700b2 100644 --- a/src/bal.c +++ b/src/bal.c @@ -8,7 +8,12 @@ int main(void){ nouveauMessage(&boiteAuxLettres,1,2,"ok c'est fait. -Yohan"); nouveauMessage(&boiteAuxLettres,3,1,"C'est trop, yohan me soule"); nouveauMessage(&boiteAuxLettres,1,3,"Yoyo l'asticot"); + nouveauMessage(&boiteAuxLettres,4,1,"Cool new mmsg"); afficheListeBAL(boiteAuxLettres); + printf("--- Cote recepteur -> getMessages() ---\n"); + afficheListeMessage(*getMessages(boiteAuxLettres,1)); + printf("--- Cote recepteur -> formatListMessage() ---\n"); + formatListMessage(*getMessages(boiteAuxLettres,1)); return 0; } @@ -129,7 +134,6 @@ void nouveauMessage(struct listeBAL * b,int idEmetteur,int idRecepteur,char *dat { bool testExistInList; struct elementBAL * elementNouveauMessage = existInListBAL(*b,idRecepteur,&testExistInList); - printf("testExistInList = %d\n",testExistInList); if(testExistInList) { ajoutListeMessage(elementNouveauMessage->BALActuel->actualMessages,creeMessage(data,idEmetteur)); @@ -140,4 +144,42 @@ void nouveauMessage(struct listeBAL * b,int idEmetteur,int idRecepteur,char *dat ajoutListeMessage(newListMessage,creeMessage(data,idEmetteur)); ajoutListeBAL(b,creerBAL(idRecepteur,newListMessage)); } +} + +struct listeMessage * getMessages(struct listeBAL b, int idRecepteur) +{ + bool testExistInList; + struct elementBAL * elementGetMessage = existInListBAL(b,idRecepteur,&testExistInList); + if(testExistInList) + { + return elementGetMessage->BALActuel->actualMessages; + } + else + { + struct listeMessage * receiverDoesntExist = initListeMessage(); + } +} + +void formatListMessage(struct listeMessage l) +{ + struct elementMessage * elementFinal = l.fin; + struct elementMessage * elementCourant = l.courant; + while(elementFinal->suiv != elementCourant->suiv) + { + char numBuff[30]; + sprintf(numBuff, "%d", (elementCourant->messageBALActuel->idEmetteur)%10000); + int tailleNum = strlen(numBuff); + char messageSend[elementCourant->messageBALActuel->tailleData+tailleNum+1]; + for(int i=0;imessageBALActuel->tailleData;i++,j++) + { + messageSend[i]=elementCourant->messageBALActuel->data[j]; + } + messageSend[elementCourant->messageBALActuel->tailleData+tailleNum+1]='\0'; + printf("Data sent : %s\n",messageSend); + elementCourant=elementCourant->suiv; + } } \ No newline at end of file