IDynamicKeyProviderConcept-Schnittstelle (dbgmodel.h)

Wenn ein Client die Speicherung von Schlüsseln und Werten für ein Objekt übernehmen möchte, kann er diese Konzeptschnittstelle implementieren.

Das Objekt ist ein dynamischer Schlüsselanbieter und möchte alle Schlüsselabfragen aus dem Kerndatenmodell übernehmen. Diese Schnittstelle wird in der Regel als Brücke zu dynamischen Sprachen wie JavaScript verwendet.

Vererbung

IDynamicKeyProviderConcept interitiert von IUnknown.

Methoden

Die IDynamicKeyProviderConcept-Schnittstelle weist diese Methoden auf.

 
IDynamicKeyProviderConcept::AddRef

Die IDynamicKeyProviderConcept::AddRef-Methode erhöht die Referenzanzahl für eine Schnittstelle eines Objekts.
IDynamicKeyProviderConcept::EnumerateKeys

Die EnumerateKeys-Methode eines dynamischen Schlüsselanbieters ist effektiv eine Außerkraftsetzung der EnumerateKeys-Methode auf IModelObject.
IDynamicKeyProviderConcept::GetKey

Die GetKey-Methode für einen dynamischen Schlüsselanbieter ist weitgehend eine Außerkraftsetzung der GetKey-Methode auf IModelObject.
IDynamicKeyProviderConcept::QueryInterface

Die IDynamicKeyProviderConcept::QueryInterface-Methode ruft Zeiger auf die unterstützten Schnittstellen eines Objekts ab.
IDynamicKeyProviderConcept::Release

Die IDynamicKeyProviderConcept::Release-Methode erhöht die Referenzanzahl für eine Schnittstelle eines Objekts.
IDynamicKeyProviderConcept::SetKey

Die SetKey-Methode für einen dynamischen Schlüsselanbieter ist effektiv eine Außerkraftsetzung der SetKey-Methode auf IModelObject.

Bemerkungen

Konzepte für dynamische Anbieter

Während das Datenmodell selbst normalerweise die Schlüssel- und Konzeptverwaltung für Objekte verarbeitet, gibt es Zeiten, in denen dieser Begriff kleiner als ideal ist. Insbesondere, wenn ein Client eine Brücke zwischen dem Datenmodell und etwas anderes erstellen möchte, das wirklich dynamisch ist (z. B. JavaScript), kann es sinnvoll sein, die Schlüssel- und Konzeptverwaltung aus der Implementierung im Datenmodell zu übernehmen. Da das Kerndatenmodell die einzige Implementierung von IModelObject ist, erfolgt dies stattdessen über eine Kombination aus zwei Konzepten: dem dynamischen Schlüsselanbieterkonzept und dem dynamischen Konzept des Anbieters. Obwohl es typisch wäre, beide oder keines zu implementieren, gibt es keine Anforderung dafür.

Wenn beide implementiert werden, muss das dynamische Schlüsselanbieterkonzept vor dem Konzept des dynamischen Konzepts hinzugefügt werden. Beide Konzepte sind besonders. Sie kippen effektiv einen Schalter auf das Objekt, das es von "statisch verwaltet" in "dynamisch verwaltet" ändert. Diese Konzepte können nur festgelegt werden, wenn es keine Schlüssel/Konzepte gibt, die vom Datenmodell des Objekts verwaltet werden. Sobald diese Konzepte einem Objekt hinzugefügt werden, ist die Aktion, die dies zu tun, unwiderruflich. Es gibt einen zusätzlichen semantischen Unterschied zur Erweiterbarkeit zwischen einem IModelObject , das ein dynamischer Konzeptanbieter ist und der nicht. Diese Konzepte sollen es Clients ermöglichen, Brücken zwischen dem Datenmodell und dynamischen Sprachsystemen wie JavaScript zu erstellen. Das Datenmodell hat ein Konzept der Erweiterbarkeit, das sich etwas grundlegend von Systemen wie JavaScript unterscheidet, da es eine Struktur von übergeordneten Modellen anstelle einer linearen Kette wie der JavaScript-Prototypkette gibt. Um eine bessere Beziehung zu solchen Systemen zu ermöglichen, hat ein IModelObject , das ein dynamischer Konzeptanbieter ist, ein einzelnes Datenmodell übergeordnetes Element. Dieses einzelne Datenmodell ist ein normales IModelObject , das eine beliebige Anzahl übergeordneter Modelle aufweisen kann, wie für das Datenmodell typisch. Alle Anforderungen an den dynamischen Konzeptanbieter zum Hinzufügen oder Entfernen von Eltern werden automatisch an das einzelne Übergeordnete umgeleitet. Aus der Perspektive eines Außerhalbs sieht es so aus, als ob der dynamische Konzeptanbieter eine normale Strukturstilkette von übergeordneten Modellen besitzt. Der Implementierunger des Konzepts des dynamischen Konzepts ist das einzige Objekt (außerhalb des Kerndatenmodells), das sich dem zwischengeschalteten einzel übergeordneten Element bewusst ist. Dieses einzelne übergeordnete Element kann mit dem dynamischen Sprachsystem verknüpft werden, um eine Brücke bereitzustellen (z. B. in die JavaScript-Prototypkette platziert).

Anforderungen

   
Header dbgmodel.h

Weitere Informationen

Übersicht über das Debuggerdatenmodell C++