君方智能设计平台-数据对象升级框架设计

时间:2025-02-20 07:48:35
1.设计背景

     由于文件存储基于流存储,目前处于快速开发阶段, 修改对象数据结构很频繁。对象数据结构的修改,会破坏文件的二进制内存结构,版本发布时导致一些已创建的项目文件不能正常打开。目前的解决方案是,先将文件导出为XPE文件,然后再通过XPE文件导入君方智能设计平台。这个方案有两个不足:

  • 通过XPE导入会丢失一些数据,导致模型不完整,还需要在导入模型的基础上在进行修复。
  • 如果模型较多,会耗费大量的时间。如果模型文件能够在打开时,自动进行升级,能解决上述问题。文件数据升级功能CAD软件基础功能。

     本设计只解决数据升级的问题,文件的行为升级问题提供升级过程进度反馈机制不在本设计范围内。会在后面的时间内单独设计解决。

2.设计需求

数据升级的情况很多,能够提供一种数据升级框架,能够灵活扩展支持各种升级场景。目前已知的场景有:

  • 类新增数据成员-普通数据、容器数据、指针数据
  • 类删除数据-普通数据、容器数据和指针数据
  • 类的数据成员的改名
  • 类的数据成员从基类移到子类
  • 类的数据成员从子类移到父类。

比较常用的是场景1、场景2,前期只会支持这两种情况。

3.设计方案

总体设计:基于OM来实现,通过类型成员的类成员的OM属性来生成新的内存节点,然后使用OM来实现新的内存节点数据的填充。具体步骤如下;

步骤1-收集属性变更记录:

<