cpiCreateAndInitializeElement

Zweck

Diese Funktion erstellt ein Syntaxelement, dessen Eigner der angegebene Parser ist und das keiner Syntaxbaumstruktur zugeordnet ist. Das Element wird teilweise mit den Werten der Parameter type, name, firstChildComplete und lastChildComplete initialisiert.

Syntax

CciElement* cpiCreateAndInitializeElement(
int*            returnCode,
CciParser*      parser,
CciElementType  type,
const CciChar*  name,
CciBool         firstChildComplete,
CciBool         lastChildComplete);

Parameter

returnCode
Empfängt den Rückkehrcode von der Funktion (Ausgabe). Mögliche Rückkehrcodes sind:
  • CCI_SUCCESS
  • CCI_EXCEPTION
  • CCI_FAILURE
  • CCI_INV_PARSER_OBJECT
parser
Gibt die Adresse des Parserobjekts an (Eingabe). Diese Adresse wird dem Parser als Parameter der Implementierungsfunktion cpiCreateContext übermittelt.
type
Gibt den Typ des Elements an, das erstellt wird (Eingabe).
name
Gibt einen beschreibenden Namen für das Element an (Eingabe).
firstChildComplete
Gibt einen Wert für das Flag 'firstChildComplete' des Syntaxelements an (Eingabe).
lastChildComplete
Gibt einen Wert für das Flag 'lastChildComplete' des Syntaxelements an (Eingabe).

Rückgabewerte

Bei erfolgreicher Ausführung wird die Adresse des neuen Elementobjekts zurückgegeben. Andernfalls wird der Wert null (CCI_NULL_ADDR) zurückgegeben, und returnCode gibt die Fehlerursache an.

Beispiel

/* Gehen Sie zum Ende des Werts */
while (pc->iCurrentCharacter != quoteChar) {
advance( (PARSER_CONTEXT_ST *)context, parser );
}
/* Rufen Sie einen Zeiger zum Tagende ab */
endMarker = (char*)pc->iBuffer+(int)pc->iIndex;
/* Berechnen Sie die Größe des Tags */
markedSize = (size_t)endMarker-(int)startMarker;
/* Konvertieren Sie den Attributwert ins Brokerformat */
data = CciNString((char *)startMarker, markedSize, pc->iCcsid);
/* Erstellen Sie ein neues Namenswertelement für das Attribut */
newElement = cpiCreateAndInitializeElement(&rc, parser, type, name);
cpiSetElementType(&rc, newElement, CCI_ELEMENT_TYPE_NAME_VALUE);
cpiSetElementName(&rc, newElement, data);
if (pc->trace) {
const char * mbData = mbString(data, pc->iCcsid);
fprintf(pc->tracefile, "PLUGIN: Created new NAMEVALUE element; 
object=0x%x type=0x%x name=",
newElement, CCI_ELEMENT_TYPE_NAME_VALUE);
fprintf(pc->tracefile, "%s\n", mbData);
fflush(pc->tracefile);
free((void *)mbData);
}
/* Geben Sie den in 'CciNString()' erstellten Speicherplatz frei */
free((void *)data);
Zugehörige Konzepte
Benutzerdefinierte Parser
Benutzerdefinierte Erweiterungen
Zugehörige Tasks
Parser in C erstellen
Zugehörige Verweise
cpiCreateElement
C-Parser-Dienstprogrammfunktionen
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 18.05.2006
as08390_