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.

cpiCreateParserFactory

Diese Funktion erstellt eine einzelne Instanz der genannten Parser-Factory im Broker.

Zweck

Sie darf nur in der Initialisierungsfunktion bipGetParserFactory aufgerufen werden, die aufgerufen wird, wenn die LIL-Datei vom Broker geladen wird. Wenn cpiCreateParserFactory zu einem späteren Zeitpunkt aufgerufen wird, sind die Ergebnisse unvorhersehbar.

Syntax

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

Parameter

returnCode
Empfängt den Rückkehrcode von der Funktion (Ausgabe).
Mögliche Rückkehrcodes sind:
  • CCI_SUCCESS
  • CCI_EXCEPTION
  • CCI_FAILURE
  • CCI_INV_FACTORY_NAME
  • CCI_INV_OBJECT_NAME
name
Gibt den Namen der Factory an, die erstellt wird (Eingabe).

Rückgabewerte

Falls erfolgreich, wird die Adresse des Parser-Factory-Objekts zurückgegeben. Andernfalls wird als Wert null (CCI_NULL_ADDR) zurückgegeben, und der Rückkehrcode gibt 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: Parser-Factory kann nicht erstellt werden */
  }

  /* Adresse dieses Factory-Objekts 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 | as08240_