Partager via


Interface IDynamicConceptProviderConcept (dbgmodel.h)

Si un client souhaite prendre en charge le stockage des clés et des valeurs d’un objet, il peut implémenter cette interface de concept.

L’objet est un fournisseur dynamique de clés et souhaite prendre en charge toutes les requêtes clés à partir du modèle de données de base. Cette interface est généralement utilisée comme pont vers des langages dynamiques tels que JavaScript.

Héritage

IDynamicConceptProviderConcept hérite d’IUnknown.

Méthode

L’interface IDynamicConceptProviderConcept a ces méthodes.

 
IDynamicConceptProviderConcept ::AddRef

La méthode IDynamicConceptProviderConcept ::AddRef incrémente le nombre de références d’une interface sur un objet.
IDynamicConceptProviderConcept ::GetConcept

La méthode GetConcept sur un fournisseur de concept dynamique est effectivement un remplacement de la méthode GetConcept sur IModelObject.
IDynamicConceptProviderConcept ::NotifyDestruct

La méthode NotifyDestruct sur un fournisseur de concept dynamique est un rappel effectué par le modèle de données de base au début de la destruction de l’objet, qui est un fournisseur de concept dynamique.
IDynamicConceptProviderConcept ::NotifyParent

L’appel NotifyParent est utilisé par le modèle de données principal pour informer le fournisseur dynamique du modèle parent unique créé pour permettre de combler le paradigme « plusieurs modèles parents ».
IDynamicConceptProviderConcept ::NotifyParentChange

La méthode NotifyParent sur un fournisseur de concept dynamique est un rappel effectué par le modèle de données de base lorsqu’une manipulation statique du modèle parent unique de l’objet est effectuée.
IDynamicConceptProviderConcept ::QueryInterface

La méthode IDynamicConceptProviderConcept ::QueryInterface récupère les pointeurs vers les interfaces prises en charge sur un objet.
IDynamicConceptProviderConcept ::Release

La méthode IDynamicConceptProviderConcept ::Release décrémente le nombre de références d’une interface sur un objet.
IDynamicConceptProviderConcept ::SetConcept

La méthode SetConcept sur un fournisseur de concept dynamique est effectivement un remplacement de la méthode SetConcept sur IModelObject.

Remarques

concepts du fournisseur dynamique

Bien que le modèle de données lui-même gère normalement la gestion des clés et des concepts pour les objets, il existe des moments où cette notion est inférieure à l’idéal. En particulier, lorsqu’un client souhaite créer un pont entre le modèle de données et quelque chose d’autre qui est vraiment dynamique (par exemple, JavaScript), il peut être utile de prendre en charge la gestion des clés et des concepts à partir de l’implémentation dans le modèle de données. Étant donné que le modèle de données de base est l’une et la seule implémentation de IModelObject, cela est effectué via une combinaison de deux concepts : le concept de fournisseur de clés dynamiques et le concept de fournisseur de concept dynamique. Bien qu’il soit courant de mettre en œuvre les deux ou ni l’un ni l’autre, il n’est pas nécessaire de le faire.

Si les deux sont implémentés, le concept de fournisseur de clés dynamiques doit être ajouté avant le concept de fournisseur de concept dynamique. Ces deux concepts sont spéciaux. Ils retournent efficacement un commutateur sur l’objet qui passe de « statiquement géré » à « géré dynamiquement ». Ces concepts ne peuvent être définis que s’il n’existe pas de clés/concepts gérés par le modèle de données sur l’objet. Une fois ces concepts ajoutés à un objet, l’action de procéder est irréversible. Il existe une différence sémantique supplémentaire autour de l’extensibilité entre une IModelObject qui est un fournisseur de concept dynamique et un autre qui n’est pas. Ces concepts sont destinés à permettre aux clients de créer des ponts entre le modèle de données et les systèmes de langage dynamique tels que JavaScript. Le modèle de données a un concept d’extensibilité qui diffère quelque peu fondamentalement des systèmes comme JavaScript dans le fait qu’il existe une arborescence de modèles parents plutôt qu’une chaîne linéaire comme la chaîne de prototype JavaScript. Pour permettre une meilleure relation avec ces systèmes, un IModelObject qui est un fournisseur de concept dynamique a un seul parent de modèle de données. Ce parent de modèle de données unique est un IModelObject normal qui peut avoir un nombre arbitraire de modèles parents, comme c’est le cas pour le modèle de données. Toutes les demandes adressées au fournisseur de concept dynamique pour ajouter ou supprimer des parents sont automatiquement redirigées vers le parent unique. Du point de vue d’un extérieur, il semble que le fournisseur de concept dynamique a une chaîne de style d’arborescence normale de modèles parents. L’implémenteur du concept de fournisseur de concept dynamique est le seul objet (en dehors du modèle de données de base) qui est conscient du parent unique intermédiaire. Ce parent unique peut être lié au système de langage dynamique pour fournir un pont (par exemple, placé dans la chaîne de prototype JavaScript).

Exigences

Exigence Valeur
d’en-tête dbgmodel.h

Voir aussi

Vue d’ensemble du modèle de données du débogueur C++