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 :
Ceci copie les données de la ou des pages de flux vers la mémoire tampon.mpiStreamGetSize (hStream, &nSizeOfData); pData = malloc(nSizeOfData); mpiStreamRead (hStream, pData, nSizeOfData, &iBytesRead); - 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 :
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.while(TRUE) { mpiStreamIsEnd (hStream, &bIsEnd); if (bIsEnd) break; mpiStreamReadPage (hStream, &hPage); mpiStreamPageGetInfo (hPage, &pData, &nSizeOfPage, &nSizeOfData); MySendData (pData, nSizeOfData); }