See information about the latest product version
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 broker. 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;
}