ECL 容器对象

多个 HACL 类充当其他对象的容器。例如,,ECLSession 对象包含 ECLPS、ECLOIA、ECLWinMetrics 和 ECLXfer 对象的实例。容器提供返回指向所包含对象的指针的方法。例如,ECLSession 对象具有 GetOIA 方法,该方法返回指向 OIA 对象的指针。包含的对象不是作为容器类的公用成员实现的,而是只能通过方法访问。

由于性能或其他原因,创建容器对象时可能会创建包含的对象,也可能不会创建包含的对象。类实现可选择推迟所包含对象的构造,直到应用程序第一次请求指向这些对象的指针。应用程序不应假定包含的对象与容器同时创建。例如,构造 ECLSession 对象时,可能不会构造 ECLPS 对象的实例。相反,ECLSession 类可能会将 ECLPS 对象的构造推迟到首次调用 GetPS 方法时。

当容器类被破坏时,所有包含的实例也将被破坏。返回到应用程序的任何指针都将无效,不得使用。

注: 某些 HACL 层(如自动化对象)可能会隐藏包含方案,或将其重新转换为不使用显式指针的命名方案