Execução de operações (RequestDispatcher e callback)

A biblioteca Client Conecta disponibiliza uma única função para execução de todas as operações:

FunçãoDescrição
RequestDispatcherExecuta uma operação na biblioteca Client Conecta

Para cada operação, é necessário enviar os parâmetros de entrada e tratar os dados de resposta retornados pela biblioteca. Os parâmetros necessários para cada operação, assim como os possíveis dados de resposta, estão definidos em Operações da Biblioteca.

Todas as definições de funções e das constantes encontram-se no arquivo cli_Conecta.h, que é fornecido juntamente com o arquivo da biblioteca Client Conecta (DLL no Windows / arquivo .so no Linux) e é idêntico para ambas as plataformas.

Para executar uma operação na biblioteca Client Conecta, a Automação Comercial deve acionar a função RequestDispatcher e informar:

  • Os parâmetros de entrada necessários da operação desejada;
  • A função de callback responsável por receber as notificações de processamento e os dados de resposta da operação.

RequestDispatcher

A função RequestDispatcher é responsável pela execução de todas as operações da biblioteca.

Cada operação deve ser enviada como um conjunto de dados em formato JSON contendo os parâmetros necessários para execução.

Comportamento da função

Durante a execução da função, a biblioteca envia informações para a Automação Comercial por meio da função de callback previamente definida e informada na chamada do RequestDispatcher.

A função de callback é responsável por:

  • Receber os dados de resposta da operação executada com sucesso;
  • Receber respostas de operações encerradas com erro;
  • Receber mensagens de notificação durante o processamento da operação.

Os parâmetros de entrada e os dados de resposta de cada operação estão definidos em Operações da Biblioteca.

Sintaxe da função

int RequestDispatcher(const char *ptrJSONInput, pDispatchCallback ptrfcCallback);

Parâmetros de entrada

ParâmetroDescrição
ptrJSONInputString no formato JSON com os dados da operação.
ptrfcCallbackEndereço da função de callback implementada pela Automação Comercial para receber as informações de processamento da Biblioteca durante a execução da operação solicitada.

Saída

Não há dados retornados diretamente pela função RequestDispatcher.

Retorno da função

A função RequestDispatcher retorna códigos que indicam o resultado da execução da operação:

  • CFL_OK: operação realizada com sucesso;
  • CFL_ERROR_INVOPER: operação inválida ou não reconhecida;
  • Outros retornos: dependem da operação executada.

Callback (pDispatchCallback)

A função de callback é o mecanismo utilizado para a troca de informações entre a biblioteca Client Conecta e o software de Automação Comercial.

Essa função deve ser definida e implementada pela aplicação integradora e informada na chamada da função RequestDispatcher.

Por meio da callback, a biblioteca envia dados e notificações durante a execução das operações.

Comportamento da função

A função de callback é utilizada pela biblioteca para:

  • enviar notificações de processamento durante a execução da operação;
  • retornar os dados de resposta das operações executadas com sucesso;
  • retornar informações de operações que foram encerradas com erro.

Toda a comunicação de retorno da biblioteca ocorre exclusivamente por meio da callback.

As informações são enviadas no formato JSON, conforme o fluxo operacional da solução.

Sintaxe da função

typedef void (*pDispatchCallback)(const char *ptrJSONOutput);

Parâmetros de entrada

ParâmetroDescrição
ptrJSONOutputString no formato JSON com o seguinte conteúdo:

Saída

Não há dados retornados diretamente pela função callback.

Retorno da função

Não há valor de retorno para a função de callback.

ℹ️

Observação

A função de callback consiste em um ponteiro para função definido pela Automação Comercial, utilizado pela biblioteca Client Conecta para despachar respostas, eventos e estados das operações.

O conteúdo retornado é fornecido no formato JSON por meio do parâmetro ptrJSONOutput.

Carregamento da biblioteca por sistema operacional

A forma de carregamento dinâmico da biblioteca e de obtenção dos endereços das funções exportadas varia conforme o sistema operacional:

  • Windows: Carregamento via LoadLibrary e obtenção dos endereços de função via GetProcAddress por exemplo;
  • Linux: Carregamento via dlopen e obtenção dos endereços de função via dlsym, informando a flag RTLD_LAZY ou RTLD_NOW conforme a necessidade da aplicação.

Em ambos os casos, a assinatura da função RequestDispatcher e do ponteiro de callback pDispatchCallback, conforme definidos no arquivo cli_Conecta.h, permanece inalterada.



Did this page help you?