cpiParseBufferFormatted

Scopo

Questa funzione è un'estensione della caratteristica fornita dalla funzione di implementazione esistente cpiParseBuffer() che fornisce:
  1. La codifica e il CCSID di rappresentazione del messaggio di input.
  2. La serie, il tipo e il formato del messaggio.

Se nella struttura CPI_VFT viene fornita questa funzione di implementazione, non è possibile specificare cpiParseBuffer()cpiParseBufferEncoded() in quanto la funzione cpiDefineParserClass() avrà esito negativo e viene restituito il codice di ritorno CCI_INVALID_IMPL_FUNCTION.

Definito in Tipo Membro
CPI_VFT Condizionale iFpParseBufferFormatted

Sintassi

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

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).
set
La serie di appartenenza del messaggio (input).
type
Il tipo di messaggio (input).
format
Il formato del messaggio (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 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;

  /* 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: <- cpiParseBufferFormatted() 
    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
cpiParseBufferEncoded
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
as08170_