Ajout de getMessages qui récupère une liste de message à partir d'un id recepteur. formatListMessage formate chaque message et l'envoi au client. (WIP)

This commit is contained in:
Yohan Boujon 2023-01-17 23:51:46 +01:00
parent cfd79b575d
commit 968cc17e43
2 changed files with 54 additions and 1 deletions

View file

@ -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

View file

@ -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));
@ -141,3 +145,41 @@ void nouveauMessage(struct listeBAL * b,int idEmetteur,int idRecepteur,char *dat
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;i<tailleNum;i++)
{
messageSend[i]=numBuff[i];
}
for(int i=tailleNum,j=0;i<tailleNum+elementCourant->messageBALActuel->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;
}
}