IDataModelScript ::Execute, méthode (dbgmodel.h)
La méthode Execute exécute le contenu du script tel qu’il est dicté par le dernier appel de remplissage réussi et modifie le modèle objet du débogueur en fonction de ce contenu. Si le langage (ou le fournisseur de scripts) définit une « fonction principale », l’une que l’auteur souhaiterait appeler en cliquant sur un bouton imaginaire « Exécuter le script » dans une interface utilisateur , ce type de « fonction principale » n’est pas appelé lors d’une opération d’exécution. L’opération d’exécution peut être considérée comme effectuant uniquement des manipulations d’initialisation et de modèle objet (par exemple, l’exécution du code racine et la configuration de points d’extensibilité). L’exécution d’un script est une communication bidirectionnelle entre le fournisseur de script et le client de script. Les erreurs, le contrôle de débogage et d’autres sémantiques sont passés sur le canal de communication entre IDataModelScript et IDataModelScriptClient.
Selon que l’opération d’exécution réussit ou échoue, l’une des deux choses doit se produire :
Pour un retour réussi :
- Le contenu précédemment exécuté du script est vidé et oublié
- Toutes les manipulations de modèle objet ou points d’extensibilité ont été modifiés suite à l’exécution antérieure du script sont annulées
- Les manipulations et points d’extensibilité du modèle objet de la nouvelle exécution du script sont actives
Pour un retour ayant échoué :
- Toutes les manipulations ou points d’extensibilité de la nouvelle tentative d’exécution du script sont annulées
- L’état précédent du script est restauré. Toutes ses manipulations de modèle objet et points d’extensibilité sont restaurées.
- L’état doit être tel qu’il était après l’appel de remplissage réussi, mais avant tout appel d’exécution
Notez que pour un fournisseur de script et un environnement de script correctement écrits, l’appel de la méthode Execute plusieurs fois sans appel intermédiaire pour remplir ou dissocier doit être idempotent. Autrement dit, l’appel d’exécution N fois dans une ligne doit apparaître à l’utilisateur de la même façon qu’en appelant Execute une seule fois. L’exécution ne doit pas produire de résultats secondaires sur l’état de la cible de débogage. Par la suite, l’utilisation de propriétés, de méthodes ou d’événements sur le pont produit par le biais de la méthode Execute peut en effet produire des résultats secondaires.
Syntaxe
HRESULT Execute(
IDataModelScriptClient *client
);
Paramètres
client
Une interface au client demandant l’exécution doit être transmise ici. S’il existe des erreurs ou d’autres événements lors de l’exécution du script, le client doit être averti de ceux-ci et de leur emplacement au sein du script via des méthodes sur cette interface.
Valeur de retour
Cette méthode retourne HRESULT qui indique la réussite ou l’échec.
Exigences
Exigence | Valeur |
---|---|
d’en-tête | dbgmodel.h |