例 (RPC)
プラットフォーム ソフトウェア開発キット (SDK) には、次のようなさまざまなリモート プロシージャ コール (RPC) の概念を示す例が含まれています。
ASYNCRPC は、非同期リモート プロシージャ コールを使用する RPC アプリケーションの構造を示しています。 また、呼び出しの完了を通知するさまざまな方法も示します。
CLUUID は、クライアント オブジェクト UUID を使用して、クライアントがリモート プロシージャの複数の実装から選択できるようにする方法を示しています。
DATA ディレクトリには、4 つのプログラムが含まれています。DUNION は判別 (非カプセル化) 共用体を示しています。INOUT では、[in]、[out] パラメーターを示します。REPAS は、represent_as 属性を示します。XMIT は、transmit_as 属性を示します。
DYNEPT は、動的エンドポイントを介してサーバーへの接続を管理するクライアント アプリケーションを示しています。
FILEREP ディレクトリには、開発者が単純なファイル レプリケーション サービス、マルチユーザー ファイル レプリケーション サービス、セキュリティ機能をサポートするサービス、RPC 非同期パイプを使用したサービスを記述する方法を示す 4 つのサンプルが含まれています。
HANDLES ディレクトリには、AUTO、CXHNDL、USRDEF の 3 つのプログラムが含まれています。これは、auto_handle、[context_handle]、およびジェネリック (ユーザー定義) ハンドルをそれぞれ示します。
HELLO は、"Hello, world" のクライアント/サーバー実装です。
PICKLE ディレクトリには、2 つのプログラムが含まれています。PICKLP はデータ プロシージャのシリアル化を示します。PICKLT はデータ型のシリアル化を示します。どちらのプログラムも、[encode] と [decode] 属性を使用します。
PIPE は、パイプ型コンストラクターの使用方法を示しています。
RPCSVC は、RPC を使用したサービスの実装を示しています。
STROUT では、2 次元オブジェクト (ポインターの配列) に対してサーバーでメモリを割り当て、[out] のみのパラメーターとしてクライアントに渡す方法を示します。 その後、クライアントはメモリを解放します。 この手法により、スタブは、返されるデータの量を事前に知らずにサーバーを呼び出すことができます。
このプログラムを使用すると、ユーザーは UNICODE または ANSI 用にコンパイルすることもできます。
これらのプログラムのすべてのソース ファイルとメイクファイルは、Platform SDK にあります。
RPC アプリケーションの基本的な開発と簡単な例については、チュートリアルの トピックを参照してください。