un get qui marche?
This commit is contained in:
parent
9c89f80423
commit
1ef280444c
1 changed files with 17 additions and 4 deletions
21
src/get.c
21
src/get.c
|
@ -7,7 +7,9 @@ void * msgGet(msgSpace * space,int queueIndex,int option){
|
||||||
msgQueueId queueId;
|
msgQueueId queueId;
|
||||||
msgQueue * queue;
|
msgQueue * queue;
|
||||||
msgQueueElemId oldElemId;
|
msgQueueElemId oldElemId;
|
||||||
msgQueueElem * oldElem;
|
msgQueueElem * oldElem;
|
||||||
|
int poolIndex;
|
||||||
|
|
||||||
// on teste la possibilité de lecture sur la liste...
|
// on teste la possibilité de lecture sur la liste...
|
||||||
if (option == NONBLOCK){
|
if (option == NONBLOCK){
|
||||||
if (msgQueueReadTryLock(space->externId,queueIndex) <0){
|
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...
|
// recupérer l'id de l'ancien element...
|
||||||
msgQueueRem(queue, oldElemId);
|
msgQueueRem(queue, oldElemId);
|
||||||
|
|
||||||
oldElem = msgQueueElemOpen(oldElemId);
|
oldElem = msgQueueElemOpen(oldElemId);
|
||||||
|
poolIndex=oldElem->poolIndex;
|
||||||
|
|
||||||
/* on récupere la taille des buffer dans la pool du buffer */
|
/* on récupere la taille des buffer dans la pool du buffer */
|
||||||
int bufferSize;
|
int bufferSize;
|
||||||
msgPoolData * poolDataTab;
|
msgPoolData * poolDataTab;
|
||||||
|
@ -47,9 +50,19 @@ void * msgGet(msgSpace * space,int queueIndex,int option){
|
||||||
bufferNb=mSPoolDataTabAddr[selectedPoolIndex].bufferNb;
|
bufferNb=mSPoolDataTabAddr[selectedPoolIndex].bufferNb;
|
||||||
*/
|
*/
|
||||||
/* TODO: ecrire msgBufferMap(space,poolIndex,bufferIndex) */
|
/* TODO: ecrire msgBufferMap(space,poolIndex,bufferIndex) */
|
||||||
|
|
||||||
|
resultAddr = msgBufferMap(poolDataTab, poolIndex, 0);
|
||||||
|
if(resultAddr == NULL) {
|
||||||
|
NZG_ERROR("BufferMap", poolDataTab->poolId);
|
||||||
|
goto ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// attacher au buffer...
|
// attacher au buffer...
|
||||||
|
msgBufferAttachProc(poolDataTab,
|
||||||
|
poolIndex,
|
||||||
|
0, // c le buff en tete de file....
|
||||||
|
resultAddr);
|
||||||
|
|
||||||
// fermer la file
|
// fermer la file
|
||||||
msgQueueClose(queue);
|
msgQueueClose(queue);
|
||||||
|
|
Loading…
Reference in a new issue