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

cpiDefineParserClass

Esta función define el nombre de una clase de analizador que está soportada por una fábrica de analizadores.

functbl es un puntero a una tabla de funciones virtual que contiene punteros a las funciones de implementación en C; es decir, aquellas funciones que proporcionan la función del propio analizador.

Sintaxis

void cpiDefineParserClass(
  int*         returnCode,
  CciFactory*  factoryObject,
  CciChar*     name,
  CPI_VFT*     functbl);

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_INV_FACTORY_OBJECT
  • CCI_INV_PARSER_NAME
  • CCI_PARSER_NAME_TOO_LONG
  • CCI_INV_OBJECT_NAME
  • CCI_INV_VFTP
  • CCI_MISSING_IMPL_FUNCTION
  • CCI_INV_IMPL_FUNCTION
  • CCI_NAME_EXISTS
factoryObject
Especifica la dirección del objeto de fábrica que soporta el analizador mencionado (entrada). La dirección se devuelve de cpiCreateParserFactory.
name
Nombre de la clase de analizador que se debe definir (entrada). La longitud máxima de un nombre de clase de analizador es de 8 caracteres.
functbl
Dirección de la estructura CPI_VFT que contiene punteros a las funciones de implementación (entrada).

Valores de retorno

Ninguno. Si se produce un error, 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 analizador 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 fábrica de analizador */
  }

  /* 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 | as08250_