cpiWriteBuffer

This function writes a syntax element tree to the message buffer associated with a parser.

It appends data to the bit stream in the message buffer associated with the parser object, using the current syntax element tree as a source. The element tree cannot be modified during the execution of this implementation function. The cpiAppendToBuffer utility function can be used to append the message buffer (bit stream) with data from the element tree.

If this implementation function is provided in the CPI_VFT structure, you cannot specify either cpiWriteBufferEncoded() or cpiWriteBufferFormatted(); if you do, the cpiDefineParserClass() function fails with a return code of CCI_INVALID_IMPL_FUNCTION.

Defined In Type Member
CPI_VFT Conditional iFpWriteBuffer

Syntax

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

Parameters

parser
The address of the parser object (input).
context
The address of the context owned by the parser object (input).

Return values

The size in bytes of the data appended to the bit stream in the buffer.

Sample

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;
}