diff --git a/src/get.c b/src/get.c index b5c8e9d..4881aec 100644 --- a/src/get.c +++ b/src/get.c @@ -7,7 +7,9 @@ void * msgGet(msgSpace * space,int queueIndex,int option){ msgQueueId queueId; msgQueue * queue; msgQueueElemId oldElemId; - msgQueueElem * oldElem; + msgQueueElem * oldElem; + int poolIndex; + // on teste la possibilité de lecture sur la liste... if (option == NONBLOCK){ if (msgQueueReadTryLock(space->externId,queueIndex) <0){ @@ -30,8 +32,9 @@ void * msgGet(msgSpace * space,int queueIndex,int option){ // recupérer l'id de l'ancien element... msgQueueRem(queue, oldElemId); - oldElem = msgQueueElemOpen(oldElemId); - + oldElem = msgQueueElemOpen(oldElemId); + poolIndex=oldElem->poolIndex; + /* on récupere la taille des buffer dans la pool du buffer */ int bufferSize; msgPoolData * poolDataTab; @@ -47,9 +50,19 @@ void * msgGet(msgSpace * space,int queueIndex,int option){ bufferNb=mSPoolDataTabAddr[selectedPoolIndex].bufferNb; */ /* TODO: ecrire msgBufferMap(space,poolIndex,bufferIndex) */ + + resultAddr = msgBufferMap(poolDataTab, poolIndex, 0); + if(resultAddr == NULL) { + NZG_ERROR("BufferMap", poolDataTab->poolId); + goto ERROR; + } - + // attacher au buffer... + msgBufferAttachProc(poolDataTab, + poolIndex, + 0, // c le buff en tete de file.... + resultAddr); // fermer la file msgQueueClose(queue);