Esta función obtiene la representación de corriente de bits del elemento especificado. El analizador asociado con el elemento serializa el elemento y todos los elementos dependientes de dicho elemento. El resultado se copia en la memoria asignada por el canal de llamada. El usuario puede invocar esta función sólo en el cuerpo del mensaje, es decir, el último elemento dependiente del mensaje. En el caso especial de que todas las opciones especificadas coincidan con las opciones de la corriente de bits original, por ejemplo, una lectura de corriente de bits desde una cola de WebSphere MQ por parte del nodo MQInput, y el mensaje no se haya modificado desde que se recibiera la corriente de bits original, esta corriente de bits original se copia en la memoria asignada por el usuario. Es este caso, no es necesario que el analizador analice el mensaje ni vuelva a serializarlo.
CciSize cniElementAsBitstream( int* returnCode, CciElement* element, const struct CciByteArray* value, CciChar* messageType, CciChar* messageSet, CciChar* messageFormat, int encoding, int ccsid, int options);
En este ejemplo, el nodo solicita a la carpeta de propiedades que determine los parámetros messageSet, messageType, messageFormat, encoding, y la corriente de bits. A continuación, utiliza esta información para obtener la representación de corriente de bits del cuerpo del mensaje.
inRootElement=cniRootElement(&rc, message); checkRC(rc); inBodyRoot = cniLastChild(&rc, inRootElement); checkRC(rc); inMQMD = cniSearchFirstChild(&rc, inRootElement, CCI_COMPARE_MODE_NAME, 0, CciString("MQMD",BIP_DEF_COMP_CCSID)); checkRC(rc); inPropertiesFolder =cniSearchFirstChild(&rc, inRootElement, CCI_COMPARE_MODE_NAME, 0, CciString("Properties",BIP_DEF_COMP_CCSID)); checkRC(rc); encodingElement = cniSearchFirstChild(&rc, inPropertiesFolder, CCI_COMPARE_MODE_NAME, 0, CciString("Encoding",BIP_DEF_COMP_CCSID)); checkRC(rc); ccsidElement = cniSearchFirstChild(&rc, inPropertiesFolder, CCI_COMPARE_MODE_NAME, 0, CciString("CodedCharSetId",BIP_DEF_COMP_CCSID)); checkRC(rc); messageSetElement = cniSearchFirstChild(&rc, inPropertiesFolder, CCI_COMPARE_MODE_NAME, 0, CciString("MessageSet",BIP_DEF_COMP_CCSID)); checkRC(rc); messageTypeElement = cniSearchFirstChild(&rc, inPropertiesFolder, CCI_COMPARE_MODE_NAME, 0, CciString("MessageType",BIP_DEF_COMP_CCSID)); checkRC(rc); messageFormatElement = cniSearchFirstChild(&rc, inPropertiesFolder, CCI_COMPARE_MODE_NAME, 0, CciString("MessageFormat",BIP_DEF_COMP_CCSID)); checkRC(rc); encoding = cniElementIntegerValue(&rc, encodingElement); checkRC(rc); ccsid = cniElementIntegerValue(&rc, ccsidElement); checkRC(rc); messageSetLength=512; messageSet = (CciChar*)malloc(messageSetLength * sizeof(CciChar)); messageSetLength = cniElementCharacterValue(&rc, messageSetElement, messageSet, messageSetLength); checkRC(rc); messageTypeLength=512; messageType = (CciChar*)malloc(messageTypeLength * sizeof(CciChar)); messageTypeLength = cniElementCharacterValue(&rc, messageTypeElement, messageType, messageTypeLength); checkRC(rc); messageFormatLength=512; messageFormat = (CciChar*)malloc(messageFormatLength * sizeof(CciChar)); messageFormatLength = cniElementCharacterValue(&rc, messageFormatElement, messageFormat, messageFormatLength); checkRC(rc); bitstream.size=512; bitstream.pointer=(CciByte*)malloc(sizeof(CciByte) * 512); bufLength = cniElementAsBitstream(&rc, inBodyRoot, &bitstream, messageType, messageSet, messageFormat, encoding, ccsid, 0); checkRC(rc); bitstream.size=bufLength; convertMessage(&bitstream.pointer, &bitstream.size);
Conceptos relacionados
Nodos de proceso de mensajes definidos por el usuario
Nodos de salida definidos por el usuario
Tareas relacionadas
Creación de un nodo de proceso de mensajes en C
Referencia relacionada
cniElementName
cniElementType
Grupo cniElementValue
cniElementValueState
cniElementValueType
cniElementValueValue
cciGetLastExceptionData
Avisos |
Marcas registradas |
Descargas |
Biblioteca |
Soporte |
Información de retorno (feedback)
![]() ![]() |
as07885_ |