cpiParseBufferEncoded

Scopo

Questa funzione è un'estensione della caratteristica fornita dalla funzione di implementazione cpiParseBuffer() che fornisce la codifica e la serie di caratteri codificata di rappresentazione del messaggio. Se nella struttura CPI_VFT viene fornita questa funzione di implementazione, non è possibile specificare cpiParseBuffer()cpiParseBufferFormatted() altrimenti la funzione cpiDefineParserClass() avrà esito negativo e viene restituito il codice di ritorno CCI_INVALID_IMPL_FUNCTION.

Definito in Tipo Membro
CPI_VFT Condizionale iFpParseBufferEncoded

Sintassi

int cpiParseBufferEncoded(
  CciParser*  parser,
  CciContext*  context,
  int                        encoding,
  int          ccsid); 

Parametri

parser
L'indirizzo dell'oggetto programma di analisi (input).
context
L'indirizzo del contesto che l'oggetto programma di analisi possiede (input).
encoding
La codifica del buffer di messaggi (input).
ccsid
Il ccsid del buffer di messaggi (input).

Valori di restituzione

La dimensione (in byte) della parte rimanente del buffer di messaggi per il quale il programma di analisi assume la proprietà.

Esempio

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

int cpiParseBufferEncoded(
  CciParser*  parser,
  CciContext*  context,
  int                        encoding,
  int         ccsid
){
  PARSER_CONTEXT_ST* pc = (PARSER_CONTEXT_ST *)context ;
  int rc;

  /* Fornisce un puntatore nel buffer di messaggi e imposta l'offset */
  pc->iBuffer = (void *)cpiBufferPointer(&rc, parser);
  pc->iIndex = 0;

  /* Salva il formato del buffer */
  pc->iEncoding = encoding;
  pc->iCcsid = ccsid;

  /* Salva la dimensione del buffer */
  pc->iSize = cpiBufferSize(&rc, parser);

  /* Prepara il primo byte nel flusso */
  pc->iCurrentCharacter = cpiBufferByte(&rc, parser, pc->iIndex);

  /* Imposta l'elemento attuale nell'elemento root */
  pc->iCurrentElement = cpiRootElement(&rc, parser);

  /* Reimposta l'indicatore per garantire che l'analisi venga reimpostata correttamente */
  pc->iInTag = 0;

  if (pc->trace) {
    fprintf(pc->tracefile, "PLUGIN: <- cpiParseBufferEncoded() 
    retvalue=%d\n", pc->iSize);
    fflush(pc->tracefile);
  }
Concetti correlati
Programmi di analisi definiti dall'utente
Estensioni definite dall'utente
Attività correlate
Creazione di un programma di analisi in C
Riferimenti correlati
cpiParseBuffer
cpiParseBufferFormatted
Funzioni di implementazione del programma di analisi in C
Informazioni particolari | Marchi | Download | Libreria | Supporto | Commenti
Copyright IBM Corporation 1999, 2006 Ultimo aggiornamento: ago 17, 2006
as08160_