WebSphere Message Broker Version 8.0.0.5 Betriebssysteme: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Sehen Sie sich die Informationen zur aktuellen Produktversion im IBM Integration Bus Version 9.0 an.

cpiDefineParserClass

Diese Funktion definiert den Namen einer Parserklasse, die von einer Parser-Factory unterstützt wird.

functbl ist ein Zeiger auf eine virtuelle Funktionstabelle, die Zeiger auf die C-Implementierungsfunktionen enthält, d. h. die Funktionen, die die Funktion des Parsers selbst bereitstellen.

Syntax

void cpiDefineParserClass(
  int*         returnCode,
  CciFactory*  Factory-Objekt,
  CciChar*     name,
  CPI_VFT*     functbl);

Parameter

returnCode
Empfängt den Rückkehrcode von der Funktion (Ausgabe).
Mögliche Rückkehrcodes sind:
  • 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
Gibt die Adresse des Factory-Objekts an, das den genannten Parser unterstützt (Eingabe). Die Adresse wird von cpiCreateParserFactory zurückgegeben.
name
Der Name der Parserklasse, die definiert werden soll (Eingabe). Die maximale Länge eines Parserklassennamens beträgt 8 Zeichen.
functbl
Die Adresse der CPI_VFT-Struktur, die Zeiger auf die Implementierungsfunktionen enthält (Eingabe).

Rückgabewerte

Keine. Wenn ein Fehler auftritt, gibt returnCode den Grund für den Fehler an.

Beispiel

Das folgende Beispiel stammt aus der Musterparserdatei BipSampPluginParser.c:

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

  /* Vor dem Fortfahren müssen alle statischen Konstanten initialisiert werden, */
  /* die unter Umständen von dem Plug-in verwendet werden. */
  initParserConstants();

  /* Funktionstabelle mit Zeigern auf Parserimplementierungsfunktionen erstellen */
  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;

  /* Die Parser-Factory für dieses Plug-in erstellen */
  factoryObject = cpiCreateParserFactory(&rc, constParserFactory);
  if (factoryObject) {
    /* Die von der Factory unterstützten Nachrichtenklassen definieren */
    cpiDefineParserClass(&rc, factoryObject, constPXML, &vftable);
  }
  else {
    /* Fehler: Parserfactory kann nicht erstellt werden */
  }

  /* Adresse dieses Factoryobjekts an den Broker zurückgeben */
  return(factoryObject);
}
Bemerkungen | Marken | Downloads | Bibliothek | Support | Feedback

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

        
        Letzte Aktualisierung:
        
        Letzte Aktualisierung: 2015-02-28 16:22:03


ReferenzthemaReferenzthema | Version 8.0.0.5 | as08250_