Imposta l'indicatore di 'completamento child precedente" nell'elemento di sintassi di destinazione sul valore specificato.
void cpiSetElementCompletePrevious( int* returnCode, CciElement* targetElement, CciBool value);
Nessuno. Se si verifica un errore, il parametro returnCode indica il motivo dell'errore.
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);