| 目次 | 前へ | 次へ | Java Remote Method Invocation | 
RemoteCall インタフェースRemoteCall インタフェースは、リモートオブジェクトのスタブとスケルトンがリモートオブジェクトへの呼び出しを実行するための抽象化です。
RemoteCall インタフェースは非推奨です。1.2 のスタブプロトコルは、このインタフェースを使いません。Java 2 SDK, Standard Edition, v1.2 では、スタブは、パラメータとして RemoteCall を必要としない新しい invoke メソッドを使います。
package java.rmi.server;
import java.io.*;
public interface RemoteCall {
        ObjectOutput getOutputStream() throws IOException;
        void releaseOutputStream() throws IOException;
        ObjectInput getInputStream() throws IOException;
        void releaseInputStream() throws IOException;
        ObjectOutput getResultStream(boolean success)
                throws IOException, StreamCorruptedException;
        void executeCall() throws Exception;
        void done() throws IOException;
}
 getOutputStream メソッドは、スタブが引数を整列化する、またはスケルトンが結果を整列化する先へ出力ストリームを返します。
 releaseOutputStream メソッドは、出力ストリームを解放します。トランスポートによっては、このメソッドはストリーム自体を解放します。
 getInputStream メソッドは、スタブが結果を非整列化する、またはスケルトンが引数を非整列化する先から InputStream を返します。
 releaseInputStream メソッドは、入力ストリームを解放します。この結果いくつかのトランスポートは、接続の入力側を早期に解放できます。
 getResultStream メソッドは、出力ストリームを返します (呼び出しが成功したかどうかを示すヘッダー情報を書き込んだあと)。結果ストリームを得ることができるのは、1 回のリモート呼び出しに対して 1 回だけです。success が true であれば、転送のため整列化される結果は正常終了であり、それ以外の結果は例外になります。StreamCorruptedException は、そのリモート呼び出しに対しての結果ストリームがすでに得られている場合にスローされます。
 executeCall メソッドは、どのような値が与えられてもその値により呼び出しを実行します。
 done メソッドは、リモート呼び出しが完了したあとのクリーンアップを許可します。