Interfaz IDynamicConceptProviderConcept (dbgmodel.h)
Si un cliente quiere asumir el almacenamiento de claves y valores de un objeto, puede implementar esta interfaz de concepto.
El objeto es un proveedor dinámico de claves y desea asumir todas las consultas clave del modelo de datos principal. Esta interfaz se usa normalmente como puente a lenguajes dinámicos como JavaScript.
Herencia
IDynamicConceptProviderConcept hereda de IUnknown.
Métodos
La interfaz IDynamicConceptProviderConcept tiene estos métodos.
IDynamicConceptProviderConcept::AddRef El método IDynamicConceptProviderConcept::AddRef incrementa el recuento de referencias de una interfaz en un objeto. |
IDynamicConceptProviderConcept::GetConcept El método GetConcept en un proveedor de concepto dinámico es eficazmente una invalidación del método GetConcept en IModelObject. |
IDynamicConceptProviderConcept::NotifyDestruct El método NotifyDestruct en un proveedor de concepto dinámico es una devolución de llamada realizada por el modelo de datos principal al principio de la destrucción del objeto que es un proveedor de concepto dinámico. |
IDynamicConceptProviderConcept::NotifyParent El modelo de datos principal usa la llamada NotifyParent para informar al proveedor dinámico del modelo primario único que se crea para permitir el puente del paradigma de "varios modelos primarios". |
IDynamicConceptProviderConcept::NotifyParentChange El método NotifyParent en un proveedor de concepto dinámico es una devolución de llamada realizada por el modelo de datos principal cuando se realiza una manipulación estática del modelo primario único del objeto. |
IDynamicConceptProviderConcept::QueryInterface El método IDynamicConceptProviderConcept::QueryInterface recupera punteros a las interfaces admitidas en un objeto. |
IDynamicConceptProviderConcept::Release El método IDynamicConceptProviderConcept::Release disminuye el recuento de referencias de una interfaz en un objeto. |
IDynamicConceptProviderConcept::SetConcept El método SetConcept en un proveedor de concepto dinámico es eficazmente una invalidación del método SetConcept en IModelObject. |
Comentarios
Conceptos del proveedor dinámico
Aunque el propio modelo de datos normalmente controla la administración de conceptos y claves para objetos, hay ocasiones en las que esa noción es menor que ideal. En concreto, cuando un cliente desea crear un puente entre el modelo de datos y otra cosa que sea verdaderamente dinámica (por ejemplo: JavaScript), puede ser útil asumir la administración clave y de concepto de la implementación en el modelo de datos. Como el modelo de datos principal es la única implementación de IModelObject, esto se realiza en su lugar a través de una combinación de dos conceptos: el concepto de proveedor de claves dinámicos y el concepto de proveedor de conceptos dinámicos. Aunque sería habitual implementar ambos o ninguno, no hay ningún requisito para ello.
Si ambos se implementan, se debe agregar el concepto de proveedor de claves dinámicas antes del concepto de proveedor de concepto dinámico. Ambos conceptos son especiales. Invierten eficazmente un modificador en el objeto que lo cambia de "administrado estáticamente" a "administrado dinámicamente". Estos conceptos solo se pueden establecer si no hay claves o conceptos administrados por el modelo de datos en el objeto. Una vez agregados estos conceptos a un objeto, la acción de hacer esto es irreversible. Hay una diferencia semántica adicional en torno a la extensibilidad entre un IModelObject , que es un proveedor de concepto dinámico y otro que no es. Estos conceptos están diseñados para permitir que los clientes creen puentes entre el modelo de datos y los sistemas de lenguaje dinámico, como JavaScript. El modelo de datos tiene un concepto de extensibilidad que difiere algo fundamentalmente de sistemas como JavaScript en que hay un árbol de modelos primarios en lugar de una cadena lineal como la cadena prototipo de JavaScript. Para permitir una mejor relación con estos sistemas, un IModelObject que es un proveedor de concepto dinámico tiene un único modelo de datos primario. Ese modelo de datos único primario es un IModelObject normal que puede tener un número arbitrario de modelos primarios, como es habitual para el modelo de datos. Las solicitudes al proveedor de conceptos dinámicos para agregar o quitar elementos primarios se redirigen automáticamente al único elemento primario. Desde la perspectiva de un exterior, parece que el proveedor de conceptos dinámicos tiene una cadena de estilo de árbol normal de los modelos primarios. El implementador del concepto de proveedor de conceptos dinámicos es el único objeto (fuera del modelo de datos principal) que es consciente del elemento primario único intermedio. Ese elemento primario único se puede vincular con el sistema de lenguaje dinámico para proporcionar un puente (por ejemplo: colocado en la cadena de prototipos de JavaScript).
Requisitos
Requisito | Valor |
---|---|
Header | dbgmodel.h |
Consulte también
Información general sobre el modelo de datos del depurador de C++