A user_marshal attribútum
A [ user_marshal] attribútum egy ACF-típusú attribútum, amely a [ represent_as] szintaxishoz hasonló. Az IDL attribútumhoz hasonlóan , [wire_marshal], hatékonyabb módot kínál az adatok hálózati adatba foglalására. ACF-attribútumként [user_marshal] lehetővé teszi a MIDL számára ismeretlen egyéni adattípusokat. Minden alkalmazásspecifikus típus rendelkezik egy megfelelő továbbítható típussal, amely meghatározza a vezetékképet.
Az alkalmazásspecifikus típus lehet egyszerű, összetett vagy mutató típusú. A fő korlátozás az, hogy a típuspéldánynak rögzített, jól definiált memóriaméretet kell tartalmaznia. Ha a típuspéldány méretét módosítani kell, a megfelelő tömb helyett használjon mutatómezőt. Másik lehetőségként megadhat egy mutatót a módosítható típusra.
A [wire_marshal] attribútumhoz hasonlóan rutinokat is biztosít a méretezéshez, a marsalláshoz, a házasság megszüntetéséhez és a felszabadításhoz. Az alábbi táblázat a felhasználó által megadott rutinneveket ismerteti. A <típus> a [user_marshal] típusdefinícióban megadott típus.
Rutin | Leírás |
---|---|
<típus>_UserSize | Méretezi az RPC-adatpuffert, mielőtt az ügyfél- vagy kiszolgálóoldalon üzembe helyezésekor sorba áll. |
<típus>_UserMarshal | Az ügyfél- vagy kiszolgálóoldalon rögzíti az adatokat. |
<típus>_UserUnmarshal | Az ügyfél- vagy kiszolgálóoldalon lévő adatok leválasztása. |
<típus>_UserFree | Felszabadítja az adatokat a kiszolgáló oldalán. |
Ezeket a felhasználó által megadott rutinokat az ügyfél vagy a kiszolgálóalkalmazás biztosítja az irányattribútumok alapján.
Ha a paraméter csak [] fájlban található, az ügyfél továbbítja a kiszolgálónak. Az ügyfélnek szüksége van a <típusra>_UserSize és <>_UserMarshal függvények típusára. A kiszolgálónak szüksége van a <típusra>_UserUnmarshal és <>_UserFree függvények típusára.
A [ki]-only paraméter esetén a kiszolgáló továbbítja az ügyfelet. A kiszolgálónak szüksége van a <típusra>_UserSize és <>_UserMarshal függvények típusára, míg az ügyfélnek <>_UserMarshal függvényre van szüksége.
Kapcsolódó témakörök