cpiWriteBufferFormatted

Finalidad

Esta función es una extensión de la posibilidad proporcionada por la función de implementación cpiWriteBuffer() existente, que ofrece lo siguiente:
  1. La codificación y el juego de caracteres codificado en los que debe representarse el mensaje de salida cuando el analizador serializa su árbol de elementos en una corriente de bits de salida.
  2. El conjunto de mensajes, el tipo y el formato del mensaje de salida para los analizadores que requieran información que les permita serializar correctamente su árbol de elementos en una corriente de bits de salida.

Si no es necesaria la serialización, por ejemplo cuando la salida está basada en una corriente de bits de entrada y el árbol no se ha modificado, 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 podrá especificarse ni cpiWriteBuffer() ni cpiWriteBufferEncoded(), porque la función cpiDefineParserClass() fallará con un código de retorno de CCI_INVALID_IMPL_FUNCTION.

Definida en Tipo Miembro
CPI_VFT Condicional iFpWriteBufferFormatted

Sintaxis

int cpiWriteBufferFormatted(
  CciParser*     parser,
  CciContext*    context,
  int            encoding,
  int            ccsid,
  CciChar*       set,
  CciChar*       type,
  CciChar*       format); 

Parámetros

parser
Dirección del objeto de analizador (entrada).
context
Dirección del contexto de plug-in (entrada).
encoding
Codificación del almacenamiento intermedio de mensajes (entrada).
ccsid
CCSID del almacenamiento intermedio de mensajes (entrada).
set
Conjunto de mensajes al que pertenece el mensaje (entrada).
type
Tipo de mensaje (entrada).
format
Formato del mensaje (entrada).

Valores de retorno

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

Ejemplo

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 *)"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
cpiWriteBuffer
cpiWriteBufferEncoded
Funciones de implementación de analizador