#include "libnazgul.h" // on ajoute en fin de queue... int msgQueueElemAdd(msgQueue * queue, msgQueueElemId newElemId){ msgQueueElem * queueOldTailElem; msgQueueElem * queueNewTailElem; // on informe l'element qu'il est le dernier queueNewTailElem=msgQueueElemOpen(newElemId); if (queueNewTailElem == NULL){ NZG_ERROR("msgQueueElemOpen",newElemId); goto ERROR; } strcpy(queueNewTailElem->next,newElemId); if (msgQueueElemClose(queueNewTailElem)){ NZG_ERROR("msgQueueElemClose",newElemId); goto ERROR; } /* TODO: verifier si la liste n'est pas vide... */ /* on informe son prédecesseur qu'il a un suivant */ queueOldTailElem=msgQueueElemOpen(queue->tailId); if (queueOldTailElem == NULL){ NZG_ERROR("msgQueueElemOpen",queue->tailId); goto ERROR; } strcpy(queueOldTailElem->next,newElemId); if (msgQueueElemClose(queueOldTailElem)){ NZG_ERROR("msgQueueElemClose",queue->tailId); goto ERROR; } // on donne a la queue l'id du dernier element strcpy(queue->tailId,newElemId); ERROR: return -1; }