如何向Ocean声明我的自定义域对象可以释放内存?

时间:2012-07-27 07:42:19

标签: ocean petrel

我想将自定义域对象链接到Petrel free memory命令。我的域对象在可视化时缓存数据,并且当用户想要释放内存时可以清除此缓存。

我找到了IMemorySaver接口,并尝试在我的自定义域对象上声明这一点,但是当用户选择在Petrel中释放内存时,不会调用FreeMemory方法。

有什么想法吗?

尼尔

1 个答案:

答案 0 :(得分:1)

在Ocean 2013.1中引入了一个新API,允许在用户调用“可用内存”功能时告知插件中的自定义域对象和ToggleWindows(这也适用于对PetrelSystem.ForceFreeMemory的编程调用) ())。

API遵循与现有INameInfoFactory和IImageInfoFactory API类似的模式。

为了使用API​​,您需要为实现新IResourceSaverFactory接口的自定义域对象(或ToggleWindow)创建工厂对象。

此接口要求您实现一个名为GetResourceSaver()的方法。这个 方法将返回与您的自定义域对象(或ToggleWindow)关联的ResourceSaver对象。

ResourceSaver是一个抽象类,您应该在派生类上实现FreeResources()方法。

当调用“可用内存”功能时,系统将使用您的ResourceSaverFactory为每个自定义域对象(或ToggleWindow)实例获取ResourceSaver对象。

将在您的ResouceSaver上调用FreeResources()方法 对象。

此致

副井