#include "libnazgul.h" // l'id de l'element enlevé vas dans oldElemId int msgQueueRem(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; } // on indique à la queue le nouveau premier element strcpy(queue->headId,queueOldHeadElem->next); // on fait en sorte que l'element ne connaisse plus // ses voisins (utile pour le Delete) strcpy(queueOldHeadElem->next,queueOldHeadElem->id); if (msgQueueElemClose(queueOldHeadElem)<0 ){ NZG_ERROR("msgQueueElemClose",oldElemId); goto ERROR; } return 0; ERROR: return -1; }