WebSphere Message Broker, Versión 8.0.0.5 Sistemas operativos: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte la información sobre la última versión del producto en IBM Integration Bus, Versión 9.0

cpiCreateParserFactory

Esta función crea una instancia de la fábrica de analizadores especificada en el intermediario.

Finalidad

Sólo se debe invocar en la función de inicialización bipGetParserFactory, a la que se llama cuando el intermediario carga el archivo LIL. Si se llama a cpiCreateParserFactory posteriormente, los resultados son imprevisibles.

Sintaxis

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

Parámetros

returnCode
Recibe el código de retorno de la función (salida).
Los códigos de retorno posibles son:
  • CCI_SUCCESS
  • CCI_EXCEPTION
  • CCI_FAILURE
  • CCI_INV_FACTORY_NAME
  • CCI_INV_OBJECT_NAME
name
Especifica el nombre de la fábrica que se está creando (entrada).

Valores de retorno

Si la ejecución se realiza satisfactoriamente, se devuelve la dirección del objeto de fábrica de analizadores. De lo contrario, se devuelve un valor de cero (CCI_NULL_ADDR) y returnCode indica la razón del error.

Ejemplo

Este ejemplo se ha tomado del archivo de analizador de ejemplo BipSampPluginParser.c:

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

  /* Antes de continuar es necesario inicializar todas las constantes estáticas */
  /* que es posible que utilice el plug-in.                                 */
  initParserConstants();

  /* Configurar tabla de funciones con punteros a funciones de implementación de analizador */
  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;

  /* Crear la fábrica de analizadores para este plug-in */
  factoryObject = cpiCreateParserFactory(&rc, constParserFactory);
  if (factoryObject) {
    /* Definir las clases de mensaje soportadas por la fábrica */
    cpiDefineParserClass(&rc, factoryObject, constPXML, &vftable);
  }
  else {
    /* Error: No se ha podido crear la fábrica de analizadores */
  }

  /* Devolver la dirección de este objeto de fábrica al intermediario */
  return(factoryObject);
}
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Comentarios

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

        
        Última actualización:
        
        Última actualización: 2015-02-28 17:00:25


Tema de referenciaTema de referencia | Versión 8.0.0.5 | as08240_