Partilhar via


Trabalhando com grafos

Ao trabalhar com grafos de pares, as funções devem ser chamadas em uma ordem específica. O fluxo de chamadas depende se você está criando ou abrindo um grafo par. Este tópico identifica o fluxo de chamadas de função em um aplicativo de grafo par simples.

Iniciando um grafo

Antes que um aplicativo chame uma função na API do Peer Graphing, PeerGraphStartup deve ser chamado para inicializar a API de Grafo de Pares para um aplicativo e, em seguida, definir a versão com suporte.

Criando um grafo par

O procedimento a seguir identifica o fluxo de chamadas para a criação de um grafo par.

Importante

Apenas um par deve chamar PeerGraphCreate. Todos os outros pares devem chamar PeerGraphOpen. Várias chamadas para PeerGraphCriar invalidam um grafo.

 

  • Criar um grafo par. Chame PeerGraphCreate.

  • Registre-se para eventos de pares. Chame PeerGraphRegisterEvent.

    Observação

    Para obter mais informações sobre como registrar-se para eventos pares, consulte Infraestrutura de eventos.

     

  • Escutar conexões com um grafo par. Chame PeerGraphListen.

  • Execute funções dependentes de aplicativo para o restante do tempo de execução, por exemplo, processar eventos de pares e trabalhar com conexões.

  • Feche a conexão com um grafo par. Chame PeerGraphClose.

Abrindo um grafo par

O fluxo de chamadas de função para abrir um grafo par depende do valor retornado da chamada para PeerGraphOpen. Os valores mais importantes são S_OK e PEER_S_DATA_CREATED, que são explicados nas seções a seguir deste tópico.

Observação

Se uma chamada para PeerGraphOpen não retornar S_OK ou PEER_S_DATA_CREATED, manipule o erro.

 

Quando PeerGraphOpen retorna S_OK

Quando uma chamada para PeerGraphOpen retorna S_OK, um grafo par e um banco de dados existente foram abertos. O procedimento a seguir identifica o que você pode fazer para abrir um grafo par quando uma chamada para PeerGraphOpen retorna S_OK

  • Registre-se para eventos de pares. Chame PeerGraphRegisterEvent.

    Observação

    Para obter mais informações sobre como se registrar para eventos, consulte Infraestrutura de eventos.

     

  • Localize um nó. Esse é um processo executado fora da Infraestrutura de Grafo de Pares usando um método ou aplicativo que você identifica. A API de Grafo de Pares não fornece um mecanismo específico para localizar um nó de grafo inicial ao qual se conectar. Um aplicativo deve usar outro mecanismo, como a API PNRP (Peer Name Resolution Protocol), para localizar o nó inicial.

  • Se um nó for encontrado, conecte-se a ele. Chame PeerGraphConnect e, em seguida, chame PeerGraphListen para escutar conexões com o grafo par.

    Observação

    Se um nó não for encontrado, não chame PeerGraphConnect e PeerGraphListen.

     

  • Execute funções dependentes do aplicativo para o restante do tempo de execução, por exemplo, processar eventos de pares e trabalhar com conexões, dependendo se o nó está conectado ao grafo par ou não. Por exemplo, o aplicativo pode optar por tempo limite ou executar periodicamente a descoberta de um nó ativo no grafo.

  • Feche a conexão com o grafo par. Chame PeerGraphClose.

Quando PeerGraphOpen retorna PEER_S_DATA_CREATED

Quando PeerGraphOpen retorna PEER_S_DATA_CREATED, isso significa que um banco de dados existente para um grafo par não é encontrado, um novo banco de dados é criado e esta é a primeira vez que ele é aberto. Para usar ou escutar em um grafo par, um par deve ser conectado e sincronizado com um grafo par.

O procedimento a seguir identifica o que você pode fazer para abrir um grafo par quando uma chamada para PeerGraphOpen retorna PEER_S_DATA_CREATED.

  • Abra um grafo par. Chame PeerGraphOpen.

  • Registre-se para eventos de pares. Chame PeerGraphRegisterEvent.

    Observação

    Para obter mais informações sobre como registrar-se para eventos pares, consulte Infraestrutura de eventos.

     

  • Localize um nó. Esse é um processo executado fora da Infraestrutura de Grafo de Pares usando um método ou aplicativo que você identifica. A API de Grafo de Pares não fornece um mecanismo específico para localizar um nó de grafo inicial ao qual se conectar. Um aplicativo deve usar outro mecanismo, como a API PNRP (Peer Name Resolution Protocol), para localizar o nó inicial.

  • Se um nó for encontrado, conecte-se a ele. Chame PeerGraphConnect e, em seguida, chame PeerGraphListen para escutar conexões com o grafo par.

    Observação

    Se um nó não for encontrado, não chame PeerGraphConnect e PeerGraphListen.

     

  • Execute funções dependentes do aplicativo para o restante do tempo de execução, por exemplo, processar eventos de pares e trabalhar com conexões, dependendo se o nó está conectado ao grafo par ou não. Por exemplo, o aplicativo pode optar por tempo limite ou executar periodicamente a descoberta de um nó ativo no grafo.

  • Feche a conexão com o grafo par. Chame PeerGraphClose.