Réception de données d'une mappe

Utilisez la méthode Put pour recevoir des données d'une mappe via des objets de flux. Il existe deux méthodes différentes pour y parvenir. La méthode choisie dépend de la façon dont les données doivent être envoyées à la ressource.

  • Les données doivent être transmises à la ressource sous la forme d'une seule mémoire tampon contiguë.
    Dans cet exemple, la mémoire tampon est obtenue à partir du flux et transmise à la ressource :
    mpiStreamGetSize (hStream, &nSizeOfData); 
    
    pData = malloc(nSizeOfData); 
    
    mpiStreamRead (hStream, pData, nSizeOfData, 
    &iBytesRead);         
    Ceci copie les données de la ou des pages de flux vers la mémoire tampon.
  • Les données peuvent être transmises à la ressource sous la forme de plusieurs petites mémoires tampon.
    Dans cet exemple, chaque page est obtenue à partir du flux et est transmise à la ressource :
    while(TRUE)   
    {   
    mpiStreamIsEnd (hStream, &bIsEnd); 
    if (bIsEnd)   
    break; 
    mpiStreamReadPage (hStream, &hPage); 
    mpiStreamPageGetInfo (hPage, &pData, &nSizeOfPage, &nSizeOfData);
      MySendData (pData, nSizeOfData); 
    } 
    Il peut y avoir des scénarios où il est acceptable d'envoyer des données aux ressources par morceaux, mais la taille de ces morceaux peut ne pas correspondre à la taille d'une page. A titre d'exemple, imaginez les lignes d'une base de données. Il est possible qu'une ligne de données s'étende au-delà des limites de la page. L'adaptateur doit s'attendre à cette particularité et être en mesure de la gérer.