パラメーターに適用される方向属性
方向属性 [ in] と [ out] によって、クライアントとサーバーがメモリを割り当てて解放する方法が決まります。 次の表は、方向属性がメモリ割り当てに及ぼす影響をまとめたものです。
Directional 属性 | クライアント上のメモリ | サーバー上のメモリ |
---|---|---|
[ in] | クライアント アプリケーションは、呼び出しの前に割り当てる必要があります。 | サーバー スタブによって割り当てられます。 |
[ out] | クライアント スタブは、返却時に割り当てます。 | サーバー スタブは最上位ポインターのみを割り当てます。サーバー アプリケーションは、すべての埋め込みポインターを割り当てる必要があります。 サーバーでは、必要に応じて新しいデータも割り当てられます。 |
[入力、 出力] | クライアント アプリケーションは、サーバーに送信される初期データを割り当てる必要があります。クライアント スタブは追加のデータを割り当てます。 | サーバー スタブは、クライアントから送信される初期データを割り当てます。サーバー アプリケーションは、必要に応じて新しいデータを割り当てます。 |
いずれの場合も、クライアント スタブはメモリを解放しません。 クライアント アプリケーションは、終了する前にメモリを解放する必要があります。 サーバー スタブは、リモート プロシージャ 呼び出しが戻ったときにメモリを解放します ([ allocate] ACF 属性の対象)。