Interface IDynamicConceptProviderConcept (dbgmodel.h)

Se um cliente quiser assumir o armazenamento de chaves e valores de um objeto, ele poderá implementar essa interface de conceito.

O objeto é um provedor dinâmico de chaves e deseja assumir todas as principais consultas do modelo de dados principal. Normalmente, essa interface é usada como uma ponte para linguagens dinâmicas, como JavaScript.

Herança

IDynamicConceptProviderConcept herda de IUnknown.

Métodos

A interface IDynamicConceptProviderConcept tem esses métodos.

 
IDynamicConceptProviderConcept::AddRef

O método IDynamicConceptProviderConcept::AddRef incrementa a contagem de referência para uma interface em um objeto .
IDynamicConceptProviderConcept::GetConcept

O método GetConcept em um provedor de conceito dinâmico é efetivamente uma substituição do método GetConcept em IModelObject.
IDynamicConceptProviderConcept::NotifyDestruct

O método NotifyDestruct em um provedor de conceito dinâmico é um retorno de chamada feito pelo modelo de dados principal no início da destruição do objeto, que é um provedor de conceito dinâmico.
IDynamicConceptProviderConcept::NotifyParent

A chamada NotifyParent é usada pelo modelo de dados principal para informar o provedor dinâmico do modelo pai único que é criado para permitir a ponte do paradigma "vários modelos pai".
IDynamicConceptProviderConcept::NotifyParentChange

O método NotifyParent em um provedor de conceito dinâmico é um retorno de chamada feito pelo modelo de dados principal quando uma manipulação estática do modelo pai único do objeto é feita.
IDynamicConceptProviderConcept::QueryInterface

O método IDynamicConceptProviderConcept::QueryInterface recupera ponteiros para as interfaces com suporte em um objeto .
IDynamicConceptProviderConcept::Release

O método IDynamicConceptProviderConcept::Release diminui a contagem de referência de uma interface em um objeto .
IDynamicConceptProviderConcept::SetConcept

O método SetConcept em um provedor de conceito dinâmico é efetivamente uma substituição do método SetConcept em IModelObject.

Comentários

Conceitos de provedor dinâmico

Embora o próprio modelo de dados normalmente manipule o gerenciamento de chave e conceito para objetos, há momentos em que essa noção é menor que o ideal. Em particular, quando um cliente deseja criar uma ponte entre o modelo de dados e outra coisa que seja verdadeiramente dinâmica (por exemplo: JavaScript), pode ser valioso assumir o gerenciamento de conceito e chave da implementação no modelo de dados. Como o modelo de dados principal é a única implementação de IModelObject, isso é feito por meio de uma combinação de dois conceitos: o conceito de provedor de chave dinâmica e o conceito de provedor de conceito dinâmico. Embora seja comum implementar ambos ou nenhum deles, não há nenhum requisito para isso.

Se ambos forem implementados, o conceito de provedor de chave dinâmica deverá ser adicionado antes do conceito de provedor de conceito dinâmico. Ambos os conceitos são especiais. Eles efetivamente inverter um comutador no objeto alterando-o de "gerenciado estaticamente" para "gerenciado dinamicamente". Esses conceitos só poderão ser definidos se não houver chaves/conceitos gerenciados pelo modelo de dados no objeto . Depois que esses conceitos são adicionados a um objeto , a ação de fazer isso é irrevogável. Há uma diferença semântica adicional em relação à extensibilidade entre um IModelObject , que é um provedor de conceito dinâmico e que não é. Esses conceitos destinam-se a permitir que os clientes criem pontes entre o modelo de dados e sistemas de linguagem dinâmica, como JavaScript. O modelo de dados tem um conceito de extensibilidade que difere um pouco fundamentalmente de sistemas como JavaScript, em que há uma árvore de modelos pai em vez de uma cadeia linear como a cadeia de protótipos JavaScript. Para permitir uma relação melhor com esses sistemas, um IModelObject que é um provedor de conceito dinâmico tem um único pai de modelo de dados. Esse único pai de modelo de dados é um IModelObject normal que pode ter um número arbitrário de modelos pai, como é típico para o modelo de dados. Todas as solicitações ao provedor de conceito dinâmico para adicionar ou remover pais são redirecionadas automaticamente para o pai único. Do ponto de vista de um estranho, parece que o provedor de conceito dinâmico tem uma cadeia de estilo de árvore normal de modelos pai. O implementador do conceito de provedor de conceito dinâmico é o único objeto (fora do modelo de dados principal) que está ciente do pai único intermediário. Esse único pai pode ser vinculado ao sistema de linguagem dinâmica para fornecer uma ponte (por exemplo: colocada na cadeia de protótipos do JavaScript).

Requisitos

Requisito Valor
Cabeçalho dbgmodel.h

Confira também

Visão geral do modelo de dados do depurador C++