l3.libnazgul/src/queueRem.c
stormrider1982 65e3532430 voila
2020-03-03 23:46:32 +01:00

31 lines
660 B
C

#include "libnazgul.h"
// l'id de l'element enlevé vas dans oldElemId
int msgQueueElemRem(msgQueue * queue, msgQueueElemId oldElemId){
msgQueueElem * queueOldHeadElem;
if (strcmp(queue->headId,queue->tailId)==0){
NZG_ERROR("msgQueueElemRem : Empty queue",queue->id);
goto ERROR;
}
strcpy(oldElemId,queue->headId);
queueOldHeadElem=msgQueueElemOpen(oldElemId);
if (queueOldHeadElem == NULL){
NZG_ERROR("msgQueueElemOpen",oldElemId);
goto ERROR;
}
strcpy(queue->headId,queueOldHeadElem->next);
if (msgQueueElemClose(queueOldHeadElem)<0 ){
NZG_ERROR("msgQueueElemClose",oldElemId);
goto ERROR;
}
return 0;
ERROR:
return -1;
}