Antarmuka IDynamicKeyProviderConcept (dbgmodel.h)

Jika klien ingin mengambil alih penyimpanan kunci dan nilai untuk objek, klien dapat mengimplementasikan antarmuka konsep ini.

Objek adalah penyedia kunci dinamis dan ingin mengambil alih semua kueri utama dari model data inti. Antarmuka ini biasanya digunakan sebagai jembatan untuk bahasa dinamis seperti JavaScript.

Warisan

IDynamicKeyProviderConcept interits dari IUnknown.

Metode

Antarmuka IDynamicKeyProviderConcept memiliki metode ini.

 
IDynamicKeyProviderConcept::AddRef

Metode IDynamicKeyProviderConcept::AddRef menambah jumlah referensi untuk antarmuka pada objek.
IDynamicKeyProviderConcept::EnumerateKeys

Metode EnumerateKeys pada penyedia kunci dinamis secara efektif merupakan penimpaan metode EnumerateKeys pada IModelObject.
IDynamicKeyProviderConcept::GetKey

Metode GetKey pada penyedia kunci dinamis sebagian besar merupakan penimpaan metode GetKey pada IModelObject.
IDynamicKeyProviderConcept::QueryInterface

Metode IDynamicKeyProviderConcept::QueryInterface mengambil pointer ke antarmuka yang didukung pada objek.
IDynamicKeyProviderConcept::Release

Metode IDynamicKeyProviderConcept::Release mengurangi jumlah referensi untuk antarmuka pada objek.
IDynamicKeyProviderConcept::SetKey

Metode SetKey pada penyedia kunci dinamis secara efektif merupakan penimpaan metode SetKey pada IModelObject.

Keterangan

Konsep Penyedia Dinamis

Meskipun model data itu sendiri biasanya menangani manajemen kunci dan konsep untuk objek, ada kalanya gagasan itu kurang dari ideal. Secara khusus, ketika klien ingin membuat jembatan antara model data dan sesuatu yang benar-benar dinamis (misalnya: JavaScript), akan sangat berharga untuk mengambil alih manajemen kunci dan konsep dari implementasi dalam model data. Karena model data inti adalah satu-satunya implementasi IModelObject, ini malah dilakukan melalui kombinasi dua konsep: konsep penyedia kunci dinamis dan konsep penyedia konsep dinamis. Meskipun akan menjadi tipikal untuk mengimplementasikan keduanya atau tidak, tidak ada persyaratan untuk itu.

Jika keduanya diimplementasikan, konsep penyedia kunci dinamis harus ditambahkan sebelum konsep penyedia konsep dinamis. Kedua konsep ini istimewa. Mereka secara efektif membalik sakelar pada objek yang mengubahnya dari "dikelola secara statis" menjadi "dikelola secara dinamis". Konsep-konsep ini hanya dapat diatur jika tidak ada kunci/konsep yang dikelola oleh model data pada objek. Setelah konsep ini ditambahkan ke objek, tindakan melakukan ini tidak dapat dibatalkan. Ada perbedaan semantik tambahan sekeliling ekstensibilitas antara IModelObject yang merupakan penyedia konsep dinamis dan yang tidak. Konsep-konsep ini dimaksudkan untuk memungkinkan klien membuat jembatan antara model data dan sistem bahasa dinamis seperti JavaScript. Model data memiliki konsep ekstensibilitas yang agak berbeda secara mendasar dari sistem seperti JavaScript karena ada pohon model induk daripada rantai linier seperti rantai prototipe JavaScript. Untuk memungkinkan hubungan yang lebih baik dengan sistem tersebut, IModelObject yang merupakan penyedia konsep dinamis memiliki induk model data tunggal. Induk model data tunggal tersebut adalah IModelObject normal yang dapat memiliki jumlah model induk semena-mena seperti biasanya untuk model data. Setiap permintaan ke penyedia konsep dinamis untuk menambahkan atau menghapus induk secara otomatis dialihkan ke induk tunggal. Dari perspektif orang luar, terlihat seolah-olah penyedia konsep dinamis memiliki rantai gaya pohon normal model induk. Pelaksana konsep penyedia konsep dinamis adalah satu-satunya objek (di luar model data inti) yang mengetahui induk tunggal perantara. Induk tunggal tersebut dapat ditautkan dengan sistem bahasa dinamis untuk menyediakan jembatan (misalnya: ditempatkan ke dalam rantai prototipe JavaScript).

Persyaratan

Persyaratan Nilai
Header dbgmodel.h

Lihat juga

Gambaran Umum Model Data Debugger C++