cpiWriteBuffer

Finalidad

Esta función escribe un árbol de elementos de sintaxis en un almacenamiento intermedio de mensajes asociado con un analizador. Además, añade datos a la corriente de bits del almacenamiento intermedio de mensajes asociado con el objeto de analizador, utilizando como origen el árbol de elementos de sintaxis actual. El árbol de elementos no debe modificarse durante la ejecución de esta función de implementación. La función de programa de utilidad cpiAppendToBuffer puede utilizarse para añadir al almacenamiento intermedio de mensajes (corriente de bits) datos del árbol de elementos.

Si esta función de implementación se proporciona en la estructura CPI_VFT, no podrá especificarse ni cpiWriteBufferEncoded() ni cpiWriteBufferFormatted(), porque la función cpiDefineParserClass() fallará con un código de retorno de CCI_INVALID_IMPL_FUNCTION.

Definida en Tipo Miembro
CPI_VFT Condicional iFpWriteBuffer

Sintaxis

int cpiWriteBuffer(
  CciParser*   parser,
  CciContext*  context);

Parámetros

parser
Dirección del objeto de analizador (entrada).
context
Dirección del contexto de plug-in (entrada).

Valores de retorno

El tamaño, en bytes, de los datos añadidos a la corriente de bits del almacenamiento intermedio.

Ejemplo

int cpiWriteBuffer(
  CciParser*  parser,
  CciContext* context
){
  PARSER_CONTEXT_ST* pc = (PARSER_CONTEXT_ST *)context ;
  int                initialSize = 0;
  int                rc = 0;
  const void* a;
  CciByte b;

  
  initialSize = cpiBufferSize(&rc, parser);
  a = cpiBufferPointer(&rc, parser);
  b = cpiBufferByte(&rc, parser, 0);

  cpiAppendToBuffer(&rc, parser, (char *)"Some test data", 14);

  return cpiBufferSize(0, parser) - initialSize;
}

Conceptos relacionados
Analizadores definidos por el usuario
Extensiones definidas por el usuario

Tareas relacionadas
Creación de un analizador en C

Referencia relacionada
cpiWriteBufferEncoded
cpiWriteBufferFormatted
Funciones de implementación de analizador