Obtém a representação de fluxo de bits do elemento especificado. O analisador associado ao elemento serializa o elemento e todos os seus filhos. O resultado é copiado para a memória alocada pelo responsável pela chamada. Essa função pode ser chamada somente no corpo da mensagem, ou seja, no último filho da raiz da mensagem. No caso especial em que todas as opções especificadas correspondem às do fluxo de bits original, por exemplo, um fluxo de bits lido de uma fila do pelo nó MQInput, e a mensagem não foi modificada desde que recebeu o fluxo de bits original, esse fluxo de bits original é copiado para a memória alocada pelo usuário. Nesse caso, o analisador não precisa analisar e serializar novamente a mensagem.
CciSize cniElementAsBitstream( int* returnCode, CciElement* element, const struct CciByteArray* value, CciChar* messageType, CciChar* messageSet, CciChar* messageFormat, int encoding, int ccsid, int options);
Neste exemplo, o nó consulta a pasta properties para determinar o messageSet, messageType, messageFormat, a codificação e o fluxo de bits. Em seguida ele utiliza essas informações para obter a representação de fluxo de bits do corpo da mensagem.
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);
Conceitos relacionados
Nós de Processamento de Mensagem Definidos pelo Usuário
Nós de Saída Definidos pelo Usuário
Tarefas relacionadas
Criando um Nó de Processamento de Mensagem em C
Referências relacionadas
cniElementName
cniElementType
Grupo cniElementValue
cniElementValueState
cniElementValueType
cniElementValueValue
cciGetLastExceptionData
Avisos |
Marcas |
Downloads |
Biblioteca |
Suporte |
Feedback
![]() ![]() |
as07885_ |