====== ModelManager ====== **//Inherited from//** [[class::domain::xmanager|XManager]], **//Inherited by//** NULL **//Friend class//** NULL **//Description//** ModelManager从XManager继承,是模型对象管理器,所有模型对象的创建、销毁、访问以及修改都通过调用它的通用接口完成。它的域识别码是Domain_Model,类型名是"DMODEL"。 **//Public interface//** * [[modelmanager#modelmanager1|ModelManager]](OpnRecorder * rec) * [[modelmanager#~modelmanager|~ModelManager]]() * ErrorCode [[modelmanager#read|read]](XBinaryIO * io) * void [[modelmanager#write|write]](XBinaryIO * io) * void [[modelmanager#write|write]](XH5IO * io, H5Obj * grp) * bool [[modelmanager#read|read]](XH5IO * io, H5Obj * grp) * XModel * [[modelmanager#createmodel|createModel]](ulong id = 0) * void [[modelmanager#serialize|serialize]](XBinaryIO * io, XItem * obj, bool bSave) ---- {{anchor:modelmanager1}} **ModelManager(OpnRecorder * rec)** *function: 构造函数 *parameters: - [i]OpnRecorder * rec: 数据操作记录器,用于undo、redo *return value: 无 {{anchor:~modelmanager}} **~ModelManager()** *function: 析构函数 *parameters: NULL *return value: 无 {{anchor:read}} **ErrorCode read(XBinaryIO * io)** *function: 从二进制文件中读取对象数据到管理器中 *parameters: - [i]XBinaryIO * io: 二进制文件句柄 *return value: 成功读取返回Error_None, 否则返回相应错误码 {{anchor:write}} **void write(XBinaryIO * io)** *function: 将管理的所有对象数据写入到二进制文件中 *parameters: - [i]XBinaryIO * io: 二进制文件句柄 *return value: 无 {{anchor:write}} **void write(XH5IO * io, H5Obj * grp)** *function: 将管理的所有对象数据写入到HDF5文件中 *parameters: - [i]XH5IO * io: HDF5文件句柄 - [i] H5Obj * grp: 对象管理器对应的HDF5节点 *return value: 无 {{anchor:read}} **bool read(XH5IO * io, H5Obj * grp)** *function: 从HDF5文件中读取对象数据到管理器中 *parameters: - [i]XH5IO * io: HDF5文件句柄 - [i] H5Obj * grp: 对象管理器对应的HDF5节点 *return value: 完整读取返回true,否则返回false {{anchor:createmodel}} **XModel * createModel(ulong id = 0)** *function: 便捷函数,用于创建并初始化模型对象 *parameters: - [i]ulong id = 0: 模型对象ID *return value: 创建好的模型对象 {{anchor:serialize}} **void serialize(XBinaryIO * io, XItem * obj, bool bSave)** *function: 在undo、redo时从数据操作记录文件中序列化数据对象 *parameters: - [i]XBinaryIO * io: 二进制数据操作记录文件句柄 - [i] XItem * obj: 数据对象 - [i] bool bSave: 是否保存数据对象 *return value: 无