例 (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] 属性が使用されます。
PIPES は、パイプ型コンストラクターの使用を示しています。
RPCSVC は、RPC を使用したサービスの実装を示しています。
STROUT では、2 次元オブジェクト (ポインターの配列) に対してサーバーにメモリを割り当て、[out] 専用パラメーターとしてクライアントに渡す方法を示します。 その後、クライアントはメモリを解放します。 この手法により、スタブは、返されるデータの量を事前に知らずにサーバーを呼び出すことができます。
このプログラムを使用すると、ユーザーは UNICODE または ANSI 用にコンパイルすることもできます。
これらのプログラムのすべてのソース ファイルとメイクファイルは、Platform SDK にあります。
RPC アプリケーションの基本的な開発と簡単な例については、 チュートリアル のトピックを参照してください。