Bagikan melalui


Antarmuka IModelObject (dbgmodel.h)

Antarmuka IModelObject merangkum gagasan objek -- apakah objek tersebut adalah bilangan bulat, string, beberapa jenis kompleks di ruang alamat target debugger.

Warisan

IModelObject mewarisi dari IUnknown.

Metode

Antarmuka IModelObject memiliki metode ini.

 
IModelObject::AddParentModel

Metode AddParentModel menambahkan model induk baru ke objek yang diberikan.
IModelObject::AddRef

Metode AddRef menambah jumlah referensi untuk antarmuka pada objek. Metode ini milik antarmuka IModelObject.
IModelObject::ClearConcepts

Metode ClearConcepts akan menghapus semua konsep dari instans objek yang ditentukan oleh ini.
IModelObject::ClearKeys

Metode ClearKeys menghapus semua kunci dan nilai serta metadata terkait dari instans objek yang ditentukan oleh ini.
IModelObject::Bandingkan

Metode Bandingkan membandingkan dua objek model dan mengembalikan indikasi hubungan objek tersebut.
IModelObject::D ereference

Metode Dereferensi mendereferensikan objek.
IModelObject::EnumerateKeyReferences

Metode EnumerateKeyReferences berperilaku mirip dengan metode EnumerateKeyValues kecuali bahwa metode mengembalikan referensi ke kunci yang dijumlahkan alih-alih nilai kunci.
IModelObject::EnumerateKeys

Menghitung kunci dalam penyedia kunci dinamis.
IModelObject::EnumerateKeyValues

Metode EnumerateKeyValues adalah metode pertama yang akan dialihkan klien untuk menghitung semua kunci pada objek.
IModelObject::EnumerateRawReferences

Metode EnumerateRawReferences menghitung referensi ke semua anak asli (bidang, kelas dasar, dll...) dari objek yang diberikan.
IModelObject::EnumerateRawValues

Metode EnumerateRawValues menghitung semua anak asli (bidang, kelas dasar, dll...) dari objek yang diberikan.
IModelObject::GetConcept

Metode GetConcept akan mencari konsep pada objek (atau rantai model induknya) dan mengembalikan penunjuk antarmuka ke antarmuka konsep.
IModelObject::GetContext

Metode GetContext mengembalikan konteks host yang terkait dengan objek.
IModelObject::GetContextForDataModel

Metode GetContextForDataModel digunakan untuk mengambil informasi konteks yang disiapkan dengan panggilan sebelumnya ke SetContextForDataModel.
IModelObject::GetIntrinsicValue

Metode GetIntrinsicValue mengembalikan hal yang dikemas di dalam IModelObject.
IModelObject::GetIntrinsicValueAs

Metode GetIntrinsicValueAs berulah sebanyak metode GetIntrinsicValue kecuali mengonversi nilai ke jenis varian yang ditentukan.
IModelObject::GetKey

Metode GetKey akan mendapatkan nilai (dan metadata yang terkait dengan) kunci tertentu berdasarkan nama.
IModelObject::GetKeyReference

Jika objek atau salah satu model induknya memiliki kunci bernama sesuai dengan argumen 'kunci', ini akan mengembalikan referensi ke kunci tersebut.
IModelObject::GetKeyValue

Metode GetKeyValue adalah metode pertama yang akan dialihkan klien untuk mendapatkan nilai (dan metadata yang terkait dengan) kunci tertentu berdasarkan nama.
IModelObject::GetKind

Metode GetKind mengembalikan jenis objek apa yang dikotak di dalam IModelObject.
IModelObject::GetLocation

Metode GetLocation akan mengembalikan lokasi objek asli. Meskipun lokasi seperti itu biasanya merupakan alamat virtual dalam ruang alamat target debug, itu belum tentu demikian.
IModelObject::GetNumberOfParentModels

Metode GetNumberOfParentModels mengembalikan jumlah model induk yang dilampirkan ke instans objek tertentu.
IModelObject::GetParentModel

Metode GetParentModel mengembalikan model induk i-th dalam rantai model induk objek yang diberikan.
IModelObject::GetRawReference

Metode GetRawReference menemukan konstruksi asli dalam objek yang diberikan dan mengembalikan referensi ke dalamnya.
IModelObject::GetRawValue

Metode GetRawValue menemukan konstruksi asli dalam objek yang diberikan. Konstruksi seperti itu mungkin bidang, kelas dasar, bidang di kelas dasar, fungsi anggota, dll.
IModelObject::GetTargetInfo

Metode GetTargetInfo secara efektif merupakan kombinasi dari metode GetLocation dan GetTypeInfo yang mengembalikan lokasi abstrak serta jenis asli objek yang diberikan.
IModelObject::GetTypeInfo

Metode GetTypeInfo akan mengembalikan jenis asli objek yang diberikan. Jika objek tidak memiliki informasi jenis asli yang terkait dengannya, panggilan akan tetap berhasil tetapi akan mengembalikan null.
IModelObject::IsEqualTo

Metode IsEqualTo membandingkan konteks host dengan konteks host lain. Jika kedua konteks setara, indikasi ini dikembalikan. Perhatikan bahwa perbandingan ini bukan kesetaraan antarmuka.
IModelObject::QueryInterface

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

Metode IModelObject::Release mengurangi jumlah referensi untuk antarmuka pada objek.
IModelObject::RemoveParentModel

RemoveParentModel akan menghapus model induk tertentu dari rantai pencarian induk objek yang diberikan.
IModelObject::SetConcept

Metode SetConcept akan menempatkan konsep tertentu pada instans objek yang ditentukan oleh pointer ini.
IModelObject::SetContextForDataModel

Metode SetContextForDataModel digunakan oleh implementasi model data untuk menempatkan data implementasi pada objek instans.
IModelObject::SetKey

Metode SetKey adalah metode yang akan diaktifkan klien untuk membuat kunci pada objek (dan berpotensi mengaitkan metadata dengan kunci yang dibuat).
IModelObject::SetKeyValue

Metode SetKeyValue adalah metode pertama yang akan dialihkan klien untuk mengatur nilai kunci. Metode ini tidak dapat digunakan untuk membuat kunci baru pada objek.
IModelObject::TryCastToRuntimeType

Metode TryCastToRuntimeType akan meminta host debug untuk melakukan analisis dan menentukan jenis runtime aktual (kelas yang paling turunan) dari objek yang diberikan.

Komentar

Salah satu hal paling mendasar namun kuat tentang model data adalah menstandarkan definisi objek dan bagaimana seseorang berinteraksi dengan objek. Antarmuka IModelObject merangkum gagasan objek -- apakah objek tersebut adalah bilangan bulat, nilai titik mengambang, string, beberapa jenis kompleks di ruang alamat target debugger, atau beberapa konsep debugger seperti gagasan proses atau modul.

Ada beberapa hal berbeda yang dapat disimpan dalam (atau dikotak ke dalam) IModelObject:

• Nilai Intrinsik - IModelObject dapat menjadi kontainer untuk sejumlah jenis dasar: 8, 16, 32, atau 64 bit bilangan bulat yang ditandatangani atau tidak ditandatangani, boolean, string, kesalahan, atau gagasan kosong.

• Objek Asli - IModelObject dapat mewakili jenis kompleks (seperti yang didefinisikan oleh sistem jenis debugger) dalam ruang alamat apa pun yang ditargetkan debugger

• Objek Sintetis - IModelObject dapat menjadi objek dinamis -- kamus jika Anda akan: kumpulan tuple kunci / nilai / metadata dan serangkaian konsep yang menentukan perilaku yang tidak hanya diwakili oleh pasangan kunci / nilai.

• Properti - IModelObject dapat mewakili properti: sesuatu yang nilainya dapat diambil atau diubah dengan panggilan metode. Properti dalam IModelObject secara efektif merupakan antarmuka IModelPropertyAccessor yang dikotak ke dalam IModelObject

• Metode - IModelObject dapat mewakili metode: sesuatu yang dapat Anda panggil dengan sekumpulan argumen dan mendapatkan nilai pengembalian. Metode dalam IModelObject secara efektif merupakan antarmuka IModelMethod yang dikemas ke dalam IModelObject

IModelObject bukan objek dalam isolasi. Selain mewakili salah satu jenis objek yang ditunjukkan di atas, setiap objek memiliki gagasan rantai model data induk. Rantai ini berulah seperti | Rantai prototipe JavaScript. Alih-alih rantai linier prototipe seperti yang dimiliki JavaScript, setiap objek model data mendefinisikan rantai linier model induk. Masing-masing model induk tersebut pada gilirannya memiliki rantai linier lain dari sekumpulan orang tuanya sendiri. Intinya, setiap objek adalah agregasi kemampuan (properti, dll...) dari keduanya dan setiap objek di pohon ini. Saat properti tertentu dikueri, jika objek yang dikuerinya tidak mendukung properti tersebut, kueri diteruskan dalam urutan linier ke setiap induk pada gilirannya. Ini membuat perilaku di mana pencarian properti diselesaikan dengan pencarian pertama kedalaman pohon agregat.

Ekstensibilitas dalam model objek ini sangat sederhana mengingat gagasan ini bahwa setiap objek adalah agregat dirinya sendiri dan pohon model induk. Ekstensi dapat masuk dan menambahkan dirinya ke dalam daftar model induk untuk objek lain. Melakukan ini memperluas objek. Dengan cara ini, dimungkinkan untuk menambahkan kemampuan ke apa pun: instans objek atau nilai tertentu, jenis asli, konsep debugger tentang apa itu proses atau utas, atau bahkan gagasan "semua objek yang dapat diulang".

Persyaratan

Syarat Nilai
Header dbgmodel.h

Lihat juga

Gambaran Umum Antarmuka C++ Model Data Debugger