Прочитать на английском

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


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

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

Запускать граф

Прежде чем приложение вызывает функцию в 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 однорангового графирования не предоставляет конкретный механизм для поиска начального узла графа для подключения. Приложение должно использовать другой механизм, например, протокол однорангового разрешения имен (PNRP) или API, чтобы найти начальный узел.

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

    Примечание

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

     

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

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