Esta función amplía la posibilidad de la función de implementación cpiWriteBuffer(), proporcionando información adicional sobre el mensaje de salida.
Si la serialización no es necesaria, por ejemplo cuando la salida se basa en una corriente de bits de entrada y no se ha modificado el árbol, el intermediario no invocará esta función de implementación.
Si esta función de implementación se proporciona en la estructura CPI_VFT, no puede especificar cpiWriteBuffer() ni cpiWriteBufferEncoded(); si lo hace, la función cpiDefineParserClass() falla con un código de retorno CCI_INVALID_IMPL_FUNCTION.
Definida en | Tipo | Miembro |
---|---|---|
CPI_VFT | Condicional | iFpWriteBufferFormatted |
int cpiWriteBufferFormatted(
CciParser* parser,
CciContext* context,
int encoding,
int ccsid,
CciChar* set,
CciChar* type,
CciChar* format);
Tamaño en bytes de los datos añadidos a la corriente de bits del almacenamiento intermedio.
int cpiWriteBufferFormatted(
CciParser* parser,
CciContext* context,
int encoding,
int ccsid
CciChar* set,
CciChar* type,
CciChar* format
){
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 *)"Algunos datos de prueba", 14);
return cpiBufferSize(0, parser) - initialSize;
}