IBM Integration Bus, Version 10.0.0.9 Operating Systems: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS


cpiWriteBufferEncoded

This function is an extension of the capability provided by the existing cpiWriteBuffer() implementation function that provides the encoding and coded character set that the output message should be represented in when the parser serializes its element tree to an output bit stream.

If serialization is not required, for example when the output is based on an input bit stream, and the tree has not been modified, this implementation function is not called by the integration node. If this implementation function is provided in the CPI_VFT structure, you cannot specify either cpiWriteBuffer() 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 iFpWriteBufferEncoded

Syntax

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

Parameters

parser
The address of the parser object (input).
context
The address of the context owned by the parser object (input).
encoding
The encoding of the message buffer (input).
ccsid
The CCSID of the message buffer (input).

Return values

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

Sample

This example is taken from the sample parser file BipSampPluginParser.c:

int cpiWriteBufferEncoded(
  CciParser*  parser,
  CciContext* context,
  int         encoding,
  int         ccsid
){
  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;
}

as08220_.htm | Last updated 2017-07-17 12:45:51