Gerenciamento de Armazenamento em Nós Definidos pelo Usuário

Considere problemas relacionados ao gerenciamento de armazenamento ao desenvolver extensões definidas pelo usuário na linguagem de programação C.

Se você estiver desenvolvendo extensões definidas pelo usuário utilizando a linguagem de programação Java, você pode utilizar métodos padrão Java de manipulação de cadeias.

Toda a memória alocada por uma extensão definida pelo usuário deve ser liberada pela extensão definida pelo usuário. A construção de um nó em tempo de execução faz com que a função cniCreateNodeContext seja chamada, o que permite à extensão definida pelo usuário alocar áreas de dados específicas à instância do nó para armazenar um contexto. O endereço do contexto é retornado ao intermediário e é transmitido de volta do intermediário quando um método interno fizer com que uma função da extensão definida pelo usuário seja chamada; assim, a extensão C definida pelo usuário pode localizar e utilizar o contexto correto para o processamento da função.

O intermediário transmite endereços de objetos C++ à extensão definida pelo usuário que são utilizados como identificadores a serem transmitidos de volta em chamadas de função subseqüentes. Sua extensão C definida pelo usuário não de manipular nem utilizar esses ponteiros de nenhuma forma, por exemplo, tentando liberar armazenamento utilizando a função free. Essas ações causam comportamento imprevisível no intermediário.

A função de implementação cniCreateNodeContext é chamada sempre que o objeto de nó subjacente tiver sido construído internamente. É chamada quando um intermediário é definido com um fluxo de mensagens que utiliza um nó definido pelo usuário. Essa atividade não é necessariamente a mesma que criar (ou reutilizar) um encadeamento para executar uma instância de fluxo de mensagens que contém o nó. A função cniCreateNodeContext é chamada somente uma vez, durante a configuração do fluxo de mensagens, independentemente de quantos encadeamentos estão executando o fluxo de mensagens.

Considerações similares se aplicam a analisadores definidos pelo usuário e à função de implementação correspondente cpiCreateContext.

Conceitos relacionados
Visão Geral de Extensões Definidas pelo Usuário
Analisadores Definidos pelo Usuário
Referências relacionadas
cpiCreateContext
cniCreateNodeContext
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Última atualização : 2009-02-13 16:13:05

as01440_