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