Objets de conteneur ECL
Plusieurs classes HACL agissent comme des conteneurs d'autres objets. Par exemple, l'objet ECLSession contient une instance des objets ECLPS, ECLOIA, ECLWinMetrics et ECLXfer. Les conteneurs fournissent des méthodes pour renvoyer un pointeur vers l'objet contenu. Par exemple, l'objet ECLSession possède une méthode GetOIA, qui renvoie un pointeur vers un objet OIA. Les objets contenus ne sont pas implémentés en tant que membres publics de la classe du conteneur, mais sont accessibles uniquement via des méthodes.
Pour des raisons de performances ou d'autres raisons, les objets contenus peuvent ou non être créés lors de la création de l'objet conteneur. L'implémentation de la classe peut choisir de différer la construction des objets contenus jusqu'à la première fois que l'application demande un pointeur vers eux. L'application ne doit pas supposer que les objets contenus sont créés en même temps que le conteneur. Par exemple, une instance de l'objet ECLPS ne peut pas être construite lorsqu'un objet ECLSession est construit. Au lieu de cela, la classe ECLSession peut retarder la construction de l'objet ECLPS jusqu'au premier appel de la méthode GetPS.
Lorsqu'une classe conteneur est détruite, toutes les instances qu'elle contient sont également détruites. Tous les pointeurs renvoyés vers l'application deviennent invalides et ne doivent pas être utilisés.