Attributi direzionali applicati al parametro
Gli attributi direzionali [ in] e [ out] determinano come il client e il server allocano e liberano memoria. Nella tabella seguente viene riepilogato l'effetto degli attributi direzionali sull'allocazione di memoria.
Attributo direzionale | Memoria nel client | Memoria nel server |
---|---|---|
[ in] | L'applicazione client deve allocare prima della chiamata. | Alloca stub del server. |
[ out] | Lo stub del client viene allocato in caso di restituzione. | Lo stub del server alloca solo il puntatore di primo livello; l'applicazione server deve allocare tutti i puntatori incorporati. Il server alloca anche nuovi dati in base alle esigenze. |
[in, out] | L'applicazione client deve allocare i dati iniziali trasmessi al server; lo stub client alloca dati aggiuntivi. | Lo stub del server alloca i dati iniziali trasmessi dal client; l'applicazione server alloca nuovi dati in base alle esigenze. |
In tutti questi casi lo stub del client non libera memoria. L'applicazione client deve liberare la memoria prima che termini. Lo stub del server libera memoria quando la chiamata di procedura remota restituisce (soggetto all'attributo ACF [ allocate] ).