Interface IDynamicKeyProviderConcept (dbgmodel.h)

Si un client souhaite prendre le contrôle du 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 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

IDynamicKeyProviderConcept hérite de IUnknown.

Méthodes

L’interface IDynamicKeyProviderConcept a ces méthodes.

 
IDynamicKeyProviderConcept ::AddRef

La méthode IDynamicKeyProviderConcept ::AddRef incrémente le nombre de références pour une interface sur un objet.
IDynamicKeyProviderConcept ::EnumerateKeys

La méthode EnumerateKeys sur un fournisseur de clé dynamique est en fait un remplacement de la méthode EnumerateKeys sur IModelObject.
IDynamicKeyProviderConcept ::GetKey

La méthode GetKey sur un fournisseur de clés dynamiques est en grande partie un remplacement de la méthode GetKey sur IModelObject.
IDynamicKeyProviderConcept ::QueryInterface

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

La méthode IDynamicKeyProviderConcept ::Release décrémente le nombre de références pour une interface sur un objet .
IDynamicKeyProviderConcept ::SetKey

La méthode SetKey sur un fournisseur de clés dynamiques est en fait un remplacement de la méthode SetKey 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 n’est pas idéale. En particulier, lorsqu’un client souhaite créer un pont entre le modèle de données et quelque chose d’autre réellement 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 la seule et unique implémentation d’IModelObject, cette opération est effectuée 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 d’implémenter les deux ou ni l’un ni l’autre, il n’est pas nécessaire de les mettre en œuvre.

Si les deux sont implémentés, le concept de fournisseur de clé dynamique doit être ajouté avant le concept de fournisseur de concept dynamique. Ces deux concepts sont spéciaux. Ils basculent efficacement un commutateur sur l’objet en le remplaçant de « géré statiquement » à « géré dynamiquement ». Ces concepts ne peuvent être définis que s’il n’y a 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 cette action est irrévocable. Il existe une différence sémantique supplémentaire autour de l’extensibilité entre un IModelObject qui est un fournisseur de concept dynamique et un autre qui ne l’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 en ce qu’il existe une arborescence de modèles parents plutôt qu’une chaîne linéaire comme la chaîne 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 généralement 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 étranger, il semble que le fournisseur de concept dynamique ait 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 connaît le 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).

Configuration requise

Condition requise Valeur
En-tête dbgmodel.h

Voir aussi

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