Поделиться через


Работа с графами

При работе с одноранговые графы функции должны вызываться в определенном порядке. Поток вызовов зависит от того, создаете или открываете одноранговый граф. В этом разделе определяется поток вызовов функций в простом одноранговом приложении графа.

Запуск графа

Прежде чем приложение вызовет функцию в API однорангового графирования, необходимо вызвать PeerGraphStartup , чтобы инициализировать API однорангового графирования для приложения, а затем задать поддерживаемую версию.

Создание однорангового графа

Следующая процедура определяет поток вызовов для создания однорангового графа.

Важно!

Только один одноранговый узел должен вызывать PeerGraphCreate. Все остальные одноранговые узлы должны вызывать 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.

    Примечание

    Дополнительные сведения о регистрации для событий см. в разделе Инфраструктура событий.

     

  • Найдите узел. Это процесс, выполняемый за пределами инфраструктуры однорангового графирования с помощью идентифицирующего метода или приложения. API однорангового графирования не предоставляет конкретный механизм для поиска начального узла графа для подключения. Приложение должно использовать другой механизм, например API однорангового протокола разрешения имен (PNRP), для поиска начального узла.

  • Если узел найден, подключитесь к нему. Вызовите PeerGraphConnect, а затем вызовите PeerGraphListen , чтобы прослушивать подключения к одноранговой диаграмме.

    Примечание

    Если узел не найден, не вызывайте PeerGraphConnect и PeerGraphListen.

     

  • Выполнять зависимые от приложения функции в течение оставшегося времени выполнения, например обрабатывать одноранговые события и работать с подключениями в зависимости от того, подключен ли узел к одноранговой диаграмме. Например, приложение может выбрать истечение времени ожидания или периодически выполнять обнаружение активного узла в графе.

  • Закройте подключение к одноранговой диаграмме. Вызов peerGraphClose.

Когда PeerGraphOpen возвращает PEER_S_DATA_CREATED

Когда PeerGraphOpen возвращает PEER_S_DATA_CREATED, это означает, что существующая база данных для однорангового графа не найдена, создается новая база данных и открывается впервые. Чтобы использовать одноранговый граф или прослушивать его, одноранговый узел должен быть подключен к одноранговой диаграмме и синхронизирован с ним.

Следующая процедура определяет, что можно сделать, чтобы открыть одноранговый граф, когда вызов PeerGraphOpen возвращает PEER_S_DATA_CREATED.

  • Открытие однорангового графа. Вызов peerGraphOpen.

  • Зарегистрируйтесь для получения одноранговых событий. Вызов peerGraphRegisterEvent.

    Примечание

    Дополнительные сведения о регистрации для одноранговых событий см. в разделе Инфраструктура событий.

     

  • Найдите узел. Это процесс, выполняемый за пределами инфраструктуры однорангового графирования с помощью идентифицирующего метода или приложения. API однорангового графирования не предоставляет конкретный механизм для поиска начального узла графа для подключения. Приложение должно использовать другой механизм, например API однорангового протокола разрешения имен (PNRP), для поиска начального узла.

  • Если узел найден, подключитесь к нему. Вызовите PeerGraphConnect, а затем вызовите PeerGraphListen , чтобы прослушивать подключения к одноранговой диаграмме.

    Примечание

    Если узел не найден, не вызывайте PeerGraphConnect и PeerGraphListen.

     

  • Выполнять зависимые от приложения функции в течение оставшегося времени выполнения, например обрабатывать одноранговые события и работать с подключениями в зависимости от того, подключен ли узел к одноранговой диаграмме. Например, приложение может выбрать истечение времени ожидания или периодически выполнять обнаружение активного узла в графе.

  • Закройте подключение к одноранговой диаграмме. Вызов peerGraphClose.