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

cpiCreateParserFactory

Esta função cria uma única instância da factory do analisador denominado no broker.

Finalidade

Ela deve ser chamada apenas na função de inicialização bipGetParserFactory, que é chamada quando o arquivo LIL é carregado pelo broker. Se cpiCreateParserFactory for chamado posteriormente, os resultados serão imprevisíveis.

Sintaxe

CciFactory* cpiCreateParserFactory(
  int*            returnCode,
  CciChar*  name);

Parâmetros

returnCode
Recebe o código de retorno da função (saída).
Os possíveis códigos de retorno são:
  • CCI_SUCCESS
  • CCI_EXCEPTION
  • CCI_FAILURE
  • CCI_INV_FACTORY_NAME
  • CCI_INV_OBJECT_NAME
name
Especifica o nome da fábrica que está sendo criada (entrada).

Valores de Retorno

Se bem-sucedida, o endereço do objeto de fábrica de analisador é retornado. Caso contrário, um valor de zero (CCI_NULL_ADDR) é retornado e returnCode indica a razão do erro.

Amostra

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

void LilFactoryExportPrefix * LilFactoryExportSuffix bipGetParserFactory()
{
  /* Declarar variáveis */
  CciFactory*      factoryObject;
  int                rc;
  static CPI_VFT  vftable = {CPI_VFT_DEFAULT};

  /* Antes de prosseguir é preciso inicializar todas as constantes
estáticas */
  /* que podem ser utilizadas pelo plug-in.                                 */
  initParserConstants();

  /* Configurar a tabela de função com ponteiros para funções de
implementação de analisador */
  vftable.iFpCreateContext            = cpiCreateContext;
  vftable.iFpParseBufferEncoded       = cpiParseBufferEncoded;
  vftable.iFpParseFirstChild          = cpiParseFirstChild;
  vftable.iFpParseLastChild           = cpiParseLastChild;
  vftable.iFpParsePreviousSibling     = cpiParsePreviousSibling;
  vftable.iFpParseNextSibling         = cpiParseNextSibling;
  vftable.iFpWriteBufferEncoded       = cpiWriteBufferEncoded;
  vftable.iFpDeleteContext            = cpiDeleteContext;
  vftable.iFpSetElementValue          = cpiSetElementValue;
  vftable.iFpElementValue             = cpiElementValue;
  vftable.iFpNextParserClassName      = cpiNextParserClassName;
  vftable.iFpSetNextParserClassName   = cpiSetNextParserClassName;
  vftable.iFpNextParserEncoding       = cpiNextParserEncoding;
  vftable.iFpNextParserCodedCharSetId = cpiNextParserCodedCharSetId;

  /* Criar a fábrica de analisador para este plugin */
  factoryObject = cpiCreateParserFactory(&rc, constParserFactory);
  if (factoryObject) {
    /* Definir as classes de mensagem suportadas pela fábrica */
    cpiDefineParserClass(&rc, factoryObject, constPXML, &vftable);
  }
  else {
    /* Erro: Incapaz de criar a fábrica de analisador */
  }

  /* Retornar o endereço deste objeto de fábrica para o intermediário */
  return(factoryObject);
}
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 | as08240_