グラフの操作
ピア グラフを使用する場合は、関数を特定の順序で呼び出す必要があります。 呼び出しのフローは、ピア グラフを作成するか開くかによって異なります。 このトピックでは、単純なピア グラフ アプリケーションでの関数呼び出しのフローを特定します。
グラフの起動
アプリケーションが Peer Graphing API で関数を呼び出す前に、 PeerGraphStartup を呼び出してアプリケーションの Peer Graphing API を初期化し、サポートされているバージョンを設定する必要があります。
ピア グラフの作成
次の手順では、ピア グラフを作成するための呼び出しのフローを識別します。
重要
PeerGraphCreate を呼び出すピアは 1 つだけです。 他のすべてのピアは PeerGraphOpen を呼び出す必要があります。 PeerGraphCreate への複数の呼び出しによってグラフが無効になります。
ピア グラフを作成します。 PeerGraphCreate を呼び出します。
ピア イベントに登録します。 PeerGraphRegisterEvent を呼び出します。
注意
ピア イベントの登録の詳細については、「 イベント インフラストラクチャ」を参照してください。
ピア グラフへの接続をリッスンします。 PeerGraphListen を呼び出します。
ピア イベントの処理や接続の操作など、アプリケーションに依存する関数を実行中の残りの時間にわたって実行します。
ピア グラフへの接続を閉じます。 PeerGraphClose を呼び出します。
ピア グラフを開く
ピア グラフを開く関数呼び出しのフローは、 PeerGraphOpen の呼び出しの戻り値によって異なります。 最も重要な値は 、S_OK と PEER_S_DATA_CREATEDです。これについては、このトピックの次のセクションで説明します。
注意
PeerGraphOpen の呼び出しでS_OKまたはPEER_S_DATA_CREATEDが返されない場合は、エラーを処理します。
PeerGraphOpen がS_OKを返す場合
PeerGraphOpen の呼び出しがS_OKを返すと、ピア グラフと既存のデータベースが開かれています。 次の手順では、PeerGraphOpen の呼び出しがS_OKを返したときにピア グラフを開くために実行できる操作を示します。
ピア イベントに登録します。 PeerGraphRegisterEvent を呼び出します。
注意
イベントの登録の詳細については、「 イベント インフラストラクチャ」を参照してください。
ノードを見つけます。 これは、特定したメソッドまたはアプリケーションを使用して、ピア グラフ インフラストラクチャの外部で実行されるプロセスです。 Peer Graphing API には、接続する最初のグラフ ノードを検索するための特定のメカニズムは用意されていません。 アプリケーションでは、ピア 名前解決プロトコル (PNRP) API などの別のメカニズムを使用して、初期ノードを見つける必要があります。
ノードが見つかった場合は、ノードに接続します。 PeerGraphConnect を呼び出し、PeerGraphListen を呼び出してピア グラフへの接続をリッスンします。
注意
ノードが見つからない場合は、 PeerGraphConnect と PeerGraphListen を呼び出さないでください。
実行中の残りの時間に対してアプリケーションに依存する関数を実行します。たとえば、ノードがピア グラフに接続されているかどうかに応じて、ピア イベントを処理し、接続を操作します。 たとえば、アプリケーションは、グラフ内のアクティブなノードに対してタイムアウトまたは定期的に検出を実行することを選択できます。
ピア グラフへの接続を閉じます。 PeerGraphClose を呼び出します。
PeerGraphOpen がPEER_S_DATA_CREATEDを返す場合
PeerGraphOpen がPEER_S_DATA_CREATEDを返す場合は、ピア グラフの既存のデータベースが見つからないこと、新しいデータベースが作成され、これが初めて開かれることを意味します。 ピア グラフでを使用またはリッスンするには、ピアがピア グラフに接続され、ピア グラフと同期されている必要があります。
次の手順では、 PeerGraphOpen の呼び出しが PEER_S_DATA_CREATEDを返したときにピア グラフを開くために実行できる操作を示します。
ピア グラフを開きます。 PeerGraphOpen を呼び出します。
ピア イベントに登録します。 PeerGraphRegisterEvent を呼び出します。
注意
ピア イベントの登録の詳細については、「 イベント インフラストラクチャ」を参照してください。
ノードを見つけます。 これは、特定したメソッドまたはアプリケーションを使用して、ピア グラフ インフラストラクチャの外部で実行されるプロセスです。 Peer Graphing API には、接続する最初のグラフ ノードを検索するための特定のメカニズムは用意されていません。 アプリケーションでは、ピア 名前解決プロトコル (PNRP) API などの別のメカニズムを使用して、初期ノードを見つける必要があります。
ノードが見つかった場合は、ノードに接続します。 PeerGraphConnect を呼び出し、PeerGraphListen を呼び出してピア グラフへの接続をリッスンします。
注意
ノードが見つからない場合は、 PeerGraphConnect と PeerGraphListen を呼び出さないでください。
実行中の残りの時間に対してアプリケーションに依存する関数を実行します。たとえば、ノードがピア グラフに接続されているかどうかに応じて、ピア イベントを処理し、接続を操作します。 たとえば、アプリケーションは、グラフ内のアクティブなノードに対してタイムアウトまたは定期的に検出を実行することを選択できます。
ピア グラフへの接続を閉じます。 PeerGraphClose を呼び出します。