WebSphere Message Broker, Versão 8.0.0.5 Sistemas operacionais: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte as informações sobre a versão mais recente do produto em IBM Integration Bus, Versão 9.0

cpiParseBuffer

Esta função prepara um analisador para analisar um novo objeto de mensagem. É chamada na primeira vez (para cada mensagem) que o fluxo de mensagens faz com que o conteúdo da mensagem seja analisado.

Esta função é chamada para cada analisador definido pelo usuário que é usado para analisar um formato da mensagem específico para concluir as seguintes ações:

O parâmetro offset indica o deslocamento dentro do buffer de mensagem onde a análise deve começar. Esta indicação é necessária porque outro analisador pode possuir uma parte anterior da mensagem (por exemplo, um cabeçalho MQMD é analisado por um analisador interno pertencente ao broker). O deslocamento deve ser positivo e menor que o tamanho do buffer. Verifique nesta função que o deslocamento é válido para remover problemas associados aos analisadores anteriores.

O analisador deve retornar o tamanho do buffer restante para o qual assume o direito à propriedade. O tamanho deve ser menor ou igual ao tamanho do buffer, menor que o deslocamento atual.

Um analisador não deve tentar causar a análise de outras partes da árvore de elementos de sintaxe, por exemplo, navegando até o elemento raiz e para outra ramificação. Esta ação pode causar resultados imprevisíveis.

Se esta função de implementação for fornecida na estrutura CPI_VFT, você não poderá chamar cpiParseBufferEncoded() nem cpiParseBufferFormatted(), porque a função cpiDefineParserClass() falha com um código de retorno igual a CCI_INVALID_IMPL_FUNCTION.

Definido em Type Membro
CPI_VFT Condicional iFpParseBuffer

Sintaxe

int cpiParseBuffer(
  CciParser*  parser,
  CciContext*  context,
  int          offset);

Parâmetros

parser
O endereço do objeto analisador (entrada).
context
O endereço do contexto de propriedade do objeto analisador (entrada).
offset
O deslocamento no buffer de mensagem no qual a análise deve começar (entrada).

Valores de Retorno

O tamanho (em bytes) da parte restante do buffer de mensagem para o qual o analisador assume a propriedade.

Amostra

Este exemplo é obtido do arquivo analisador de amostra BipSampPluginParser.c:

int cpiParseBuffer(
  CciParser*  parser,
  CciContext*  context,
  int         offset,
){
  PARSER_CONTEXT_ST* pc = (PARSER_CONTEXT_ST *)context ;
  int                rc;

  /* Obter um ponteiro para o buffer de mensagem e definir o
deslocamento */
  pc->iBuffer = (void *)cpiBufferPointer(&rc, parser);
  pc->iIndex = 0;

  /* Salvar o tamanho do buffer */
  pc->iSize = cpiBufferSize(&rc, parser);

  /* Obter o primeiro byte no fluxo */
  pc->iCurrentCharacter = cpiBufferByte(&rc, parser, pc->iIndex);

  /* Definir o elemento atual como o elemento raiz */
  pc->iCurrentElement = cpiRootElement(&rc, parser);

  /* Reconfigurar o sinalizador para garantir que a análise
seja redefinida corretamente */
  pc->iInTag = 0;

  if (pc->trace) {
    fprintf(pc->tracefile, "PLUGIN: <- cpiParseBuffer() 
    retvalue=%d\n", pc->iSize);
    fflush(pc->tracefile);
  }
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Última atualização:
        
        Última atualização: 2015-02-28 18:30:24


Tópico de ReferênciaTópico de Referência | Versão 8.0.0.5 | as08150_