Attributs directionnels appliqués au paramètre
Les attributs directionnels [ in] et [ out] déterminent comment le client et le serveur allouent la mémoire et libèrent la mémoire. Le tableau suivant récapitule l’effet des attributs directionnels sur l’allocation de mémoire.
Attribut directionnel | Mémoire sur le client | Mémoire sur le serveur |
---|---|---|
[ in] | L’application cliente doit allouer avant l’appel. | Allocations de stub du serveur. |
[ out] | Le stub client alloue au retour. | Le stub du serveur alloue uniquement le pointeur de niveau supérieur ; l’application serveur doit allouer tous les pointeurs incorporés. Le serveur alloue également de nouvelles données en fonction des besoins. |
[in, out] | L’application cliente doit allouer les données initiales transmises au serveur ; le stub client alloue des données supplémentaires. | Le stub du serveur alloue les données initiales transmises à partir du client ; l’application serveur alloue de nouvelles données en fonction des besoins. |
Dans tous ces cas, le stub client ne libère pas de mémoire. L’application cliente doit libérer la mémoire avant son arrêt. Le stub du serveur libère de la mémoire lorsque l’appel de procédure distante retourne (sous réserve de l’attribut ACF [ allouer] ).