Udostępnij za pośrednictwem


implementacja potoku Client-Side

Aplikacja kliencka musi zaimplementować następujące procedury, które będą wywoływane przez wycinkę klienta podczas transferu danych:

  • Procedura ściągania (dla potoku wejściowego)
  • Procedura wypychania (dla potoku wyjściowego)
  • Procedura alokacji w celu przydzielenia buforu dla danych transferu

Wszystkie te procedury muszą używać argumentów określonych przez plik nagłówka wygenerowany przez MIDL. Ponadto aplikacja kliencka musi mieć zmienną stanu, aby określić miejsce lokalizowania lub umieszczania danych.

Procedura alokacji może być również tak prosta, jak i tak złożona, jak to konieczne. Może na przykład zwrócić wskaźnik do tego samego buforu za każdym razem, gdy wycink wywołuje funkcję, lub za każdym razem może przydzielić inną ilość pamięci. Jeśli dane znajdują się już w odpowiedniej formie (na przykład tablica elementów potoku), możesz koordynować procedurę alokacji z procedurą ściągania, aby przydzielić bufor, który zawiera już dane. W takim przypadku procedura ściągnięcia może być pustą procedurą.

Alokacja buforu musi być w bajtach. Procedury wypychania i ściągania, z drugiej strony, manipulują elementami, których rozmiar w bajtach zależy od sposobu ich definiowania.

W tej sekcji omówiono implementację potoków wejściowych i wyjściowych klienta w następujących sekcjach: