cpiSetElementCompleteNext

Scopo

Imposta l'indicatore di 'completamento child successivo" nell'elemento di sintassi di destinazione sul valore specificato.

Sintassi

void cpiSetElementCompleteNext(
  int*      returnCode,
  CciElement*     targetElement,
  CciBool                    value);

Parametri

returnCode
Riceve il codice di ritorno dalla funzione (output).
I codici di ritorno possibili sono:
  • CCI_SUCCESS
  • CCI_EXCEPTION
  • CCI_INV_ELEMENT_OBJECT
targetElement
Specifica l'indirizzo dell'oggetto elemento di sintassi di destinazione (input).
value
Il valore da impostare nell'indicatore (input).

Valori di restituzione

Nessuno. Se si verifica un errore, il parametro returnCode indica il motivo dell'errore.

Esempio

Questo esempio è estratto dal file del programma di analisi di esempio BipSampPluginParser.c (da riga 289 a 318):

/* Fornisce un puntatore all'inizio della tag */
        startMarker = (char*)pc->iBuffer+(int)pc->iIndex;

        /* Ignora la tag */
        goToNameEnd( (PARSER_CONTEXT_ST *)context, parser );

        /* Fornisce un puntatore alla fine della tag */
        endMarker = (char*)pc->iBuffer+(int)pc->iIndex;

        /* Calcola la dimensione della tag */
        markedSize = (size_t)endMarker-(int)startMarker;

        /* Converte la tag nel formato del broker */
        data = CciNString((char *)startMarker, markedSize, pc->iCcsid);

        /* Crea un nuovo elemento nome per la tag */
        newElement = cpiCreateElement(&rc, parser);
        cpiSetElementType(&rc, newElement, CCI_ELEMENT_TYPE_NAME);
        cpiSetElementName(&rc, newElement, data);
        cpiSetElementCompletePrevious(&rc, newElement, 0);
        cpiSetElementCompleteNext(&rc, newElement, 0);
        if (pc->trace) {
          const char * mbData = mbString(data, pc->iCcsid);
          fprintf(pc->tracefile, "PLUGIN: New tag found\n");
          fprintf(pc->tracefile, "PLUGIN: Created new NAME element; 
                  object=0x%x type=0x%x name=",
                  newElement, CCI_ELEMENT_TYPE_NAME);
          fprintf(pc->tracefile, "%s\n", mbData);
          fflush(pc->tracefile);
          free((void *)mbData);
        }
        /* Libera la memoria assegnata in CciNString() */
        free((void *)data);

        /* Aggiunge l'elemento */
        cpiAddAsLastChild(&rc, element, newElement);
        cpiSetElementCompletePrevious(&rc, element, 1);
Concetti correlati
Programmi di analisi definiti dall'utente
Estensioni definite dall'utente
Attività correlate
Creazione di un programma di analisi in C
Riferimenti correlati
cpiSetElementCompletePrevious
Funzioni di utilità del programma di analisi in C
Informazioni particolari | Marchi | Download | Libreria | Supporto | Commenti
Copyright IBM Corporation 1999, 2006 Ultimo aggiornamento: ago 17, 2006
as08480_