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.

cpiParseBufferFormatted

Diese Funktion erweitert die Funktionalität der Implementierungsfunktion cpiParseBuffer() und stellt zusätzliche Informationen zur Eingabenachricht bereit.

Die folgenden zusätzlichen Informationen sind verfügbar:
  1. Die Verschlüsselung und der codierte Zeichensatz, in dem die Eingabenachricht dargestellt wird.
  2. Der Nachrichtensatz, Typ und Format für die Nachricht.

Wenn diese Implementierungsfunktion in der Struktur CPI_VFT bereitgestellt wird, können Sie weder cpiParseBuffer() noch cpiParseBufferEncoded() angeben, da die Funktion cpiDefineParserClass() dann mit dem Rückkehrcode CCI_INVALID_IMPL_FUNCTION fehlschlägt.

Definiert in Typ Mitglied
CPI_VFT Bedingt iFpParseBufferFormatted

Syntax

int cpiParseBufferFormatted(
  CciParser*     parser,
  CciContext*    context,
  int            encoding,
  int            ccsid,
  CciChar*       set,
  CciChar*       type,
  CciChar*       format); 

Parameter

parser
Die Adresse des Parserobjekts (Eingabe).
context
Die Adresse des Kontextes des Parserobjekts (Eingabe).
encoding
Die Verschlüsselung des Nachrichtenpuffers (Eingabe).
ccsid
Die ID des codierten Zeichensatzes des Nachrichtenpuffers (Eingabe).
set
Der Nachrichtensatz, zu dem die Nachricht gehört (Eingabe).
type
Der Nachrichtentyp (Eingabe).
format
Das Nachrichtenformat (Eingabe).

Rückgabewerte

Die Größe (in Byte) des restlichen Teils des Nachrichtenpuffers, für den der Parser das Eigentumsrecht übernimmt.

Beispiel

Das folgende Beispiel stammt aus der Musterparserdatei BipSampPluginParser.c:

int cpiParseBufferFormatted(
  CciParser*     parser,
  CciContext*    context,
  int            encoding,
  int            ccsid,
  CciChar*       set,
  CciChar*       type,
  CciChar*       format
){
  PARSER_CONTEXT_ST* pc = (PARSER_CONTEXT_ST *)context ;
  int             rc; 

  /* Zeiger auf den Nachrichtenpuffer abrufen und Offset festlegen */
  pc->iBuffer = (void *)cpiBufferPointer(&rc, parser);
  pc->iIndex = 0;

  /* Format des Puffers speichern */
  pc->iEncoding = encoding;
  pc->iCcsid = ccsid;

  /* Größe des Puffers speichern */
  pc->iSize = cpiBufferSize(&rc, parser);

  /* Ersten Byte im Datenstrom einsetzen */
  pc->iCurrentCharacter = cpiBufferByte(&rc, parser, pc->iIndex);

  /* Aktuelles Element für das Stammelement festlegen */
  pc->iCurrentElement = cpiRootElement(&rc, parser);

  /* Flag zurücksetzen, um sicherzustellen, dass die Analyse korrekt zurückgesetzt wird */
  pc->iInTag = 0;

  if (pc->trace) {
    fprintf(pc->tracefile, "PLUGIN: <- cpiParseBufferFormatted() 
    retvalue=%d\n", pc->iSize);
    fflush(pc->tracefile);
  }
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 | as08170_