implementazione della pipe Client-Side
L'applicazione client deve implementare le procedure seguenti, che lo stub client chiamerà durante il trasferimento dei dati:
- Una procedura pull (per una pipe di input)
- Procedura push (per una pipe di output)
- Procedura di allocazione per allocare un buffer per i dati di trasferimento
Tutte queste procedure devono utilizzare gli argomenti specificati dal file di intestazione generato da MIDL. Inoltre, l'applicazione client deve avere una variabile di stato per identificare dove individuare o inserire i dati.
La procedura di allocazione può anche essere semplice o complessa in base alle esigenze. Ad esempio, può restituire un puntatore allo stesso buffer ogni volta che lo stub chiama la funzione oppure può allocare una quantità di memoria diversa ogni volta. Se i dati sono già nel formato corretto ,ad esempio una matrice di elementi pipe, è possibile coordinare la routine di allocazione con la routine pull per allocare un buffer che contiene già i dati. In tal caso, la routine pull potrebbe essere una routine vuota.
L'allocazione del buffer deve essere in byte. Le procedure push e pull, d'altra parte, modificano gli elementi, le cui dimensioni in byte dipendono dalla modalità di definizione.
In questa sezione viene illustrata l'implementazione client delle pipe di input e output nelle sezioni seguenti: