XManager(TypeID domainType, int initHashSize, XMemPool * memPool, int defaultMemSize) | 原型 | XManager(TypeID domainType, int initHashSize, XMemPool * memPool, int defaultMemSize) | | 描述 | 构造函数 | | 参数 | [i]TypeID domainType: 域类型ID \\ [i] int initHashSize: 初始对象数目规模 \\ [i] XMemPool * memPool: 对象内存池 \\ [i] int defaultMemSize: 默认内存池大小 | | 返回值 | 无 | XManager(TypeID domainType) | 原型 | XManager(TypeID domainType) | | 描述 | 构造函数 | | 参数 | [i]TypeID domainType: 域类型ID | | 返回值 | 无 | static ulong registerCItem(const char * itemTypeString, TypeID domainType, AllocItemFunc itemAlloc, FreeItemFunc itemFree, TypeID itemType = DItem_Unknown) | 原型 | static ulong registerCItem(const char * itemTypeString, TypeID domainType, AllocItemFunc itemAlloc, FreeItemFunc itemFree, TypeID itemType = DItem_Unknown) | | 描述 | 注册数据对象类型 | | 参数 | [i]const char * itemTypeString: 数据对象类型字符串标识 \\ [i] TypeID domainType: 域类型 \\ [i] AllocItemFunc itemAlloc: 数据对象构造API \\ [i] FreeItemFunc itemFree: 数据对象析构API \\ [i] TypeID itemType = DItem_Unknown: 强制指定数据对象类型ID | | 返回值 | 返回数据对象类型ID,itemType为DItem_Unknown时ID为程序自动分配(以域类型ID*10000为基数自动递增),否则为指定的ID | static ulong registerDomain(const char * domainTypeString, TypeID domainType = Domain_Unknown) | 原型 | static ulong registerDomain(const char * domainTypeString, TypeID domainType = Domain_Unknown) | | 描述 | 注册对象管理器 | | 参数 | [i]const char * domainTypeString: 域类型字符串标识 \\ [i] TypeID domainType = Domain_Unknown: 强制指定域类型ID | | 返回值 | 返回对象管理器的域类型ID,domainType为Domain_Unknown时ID为程序自动分配(从1递增),否则为指定的ID | static const char * getCtypeString(ulong ctype) | 原型 | static const char * getCtypeString(ulong ctype) | | 描述 | 获取类型ID为ctype的字符串标识(类型可能为数据对象类型,也可能为域类型) | | 参数 | [i]ulong ctype: 给定的类型ID | | 返回值 | 字符串标识 | static ulong getCtype(const char * typeString) | 原型 | static ulong getCtype(const char * typeString) | | 描述 | 获取与给定字符串标识对应的类型ID | | 参数 | [i]const char * typeString: 字符串标识 | | 返回值 | 类型ID | static ulong getNextDomainType() | 原型 | static ulong getNextDomainType() | | 描述 | 获取下一个可用的域类型ID,一般在注册对象管理器时调用 | | 参数 | 无 | | 返回值 | 下一个可用的域类型ID | static bool updateNextDomainType(ulong curType) | 原型 | static bool updateNextDomainType(ulong curType) | | 描述 | 根据curType更新下一个可用的域类型ID,如当前的最大域类型ID不大于curType,则设置下一个类型ID为curType加1 | | 参数 | [i]ulong curType: 当前有效的域类型ID | | 返回值 | 返回true | static TypeID getNextCtype(ulong domain) | 原型 | static TypeID getNextCtype(ulong domain) | | 描述 | 在domain域内获取下一个对象类型ID | | 参数 | [i]ulong domain: 指定域类型ID | | 返回值 | 下一个对象类型ID | static AllocItemFunc * getItemAllocTable(TypeID domainType) | 原型 | static AllocItemFunc * getItemAllocTable(TypeID domainType) | | 描述 | 获取指定域的构造函数数组 | | 参数 | [i]TypeID domainType: 指定域ID | | 返回值 | 指定域的构造函数数组 | static FreeItemFunc * getItemFreeTable(TypeID domainType) | 原型 | static FreeItemFunc * getItemFreeTable(TypeID domainType) | | 描述 | 获取指定域的析构函数数组 | | 参数 | [i]TypeID domainType: 指定域ID | | 返回值 | 指定域的析构函数数组 | DomainType getDomainType() const | 原型 | DomainType getDomainType() const | | 描述 | 获取管理器的域ID | | 参数 | 无 | | 返回值 | 域ID | bool isAutomaticItemType() const | 原型 | bool isAutomaticItemType() const | | 描述 | 数据对象类型是否自动赋予类型ID | | 参数 | 无 | | 返回值 | 如数据对象是自动赋予类型ID返回true,否则返回false | void registerToRecorder(OpnRecorder * rec, int domainID = -1) | 原型 | void registerToRecorder(OpnRecorder * rec, int domainID = -1) | | 描述 | 将管理器注册到数据对象记录器中,用于记录数据的操作历史 | | 参数 | [i]OpnRecorder * rec: 数据操作记录器 \\ [i] int domainID = -1: 指定管理器的注册序号,如为-1则有程序自动给定 | | 返回值 | 无 | virtual void addItem(XItem * item) | 原型 | virtual void addItem(XItem * item) | | 描述 | 将数据对象添加到管理器中 | | 参数 | [i]XItem * item: 数据对象 | | 返回值 | 无 | virtual void collectItems(vector * itemArr, TypeID tid = DItem_Unknown) | 原型 | virtual void collectItems(vector * itemArr, TypeID tid = DItem_Unknown) | | 描述 | 收集管理器中的数据对象 | | 参数 | [i]vector * itemArr: 数据对象数组 \\ [i] TypeID tid = DItem_Unknown: 指定收集的数据对象子类型,如为DItem_Unknown,收集所有的对象 | | 返回值 | 无 | virtual void updateAfterRenumber(TypeID tid = DItem_Unknown) | 原型 | virtual void updateAfterRenumber(TypeID tid = DItem_Unknown) | | 描述 | 在指定类型的数据对象重新编号后更新管理器 | | 参数 | [i]TypeID tid = DItem_Unknown: 重新编号的数据对象类型ID,如为DItem_Unknown表示任意对象重新编号之后都更新管理器 | | 返回值 | 无 | XItem * newItem(int tid = 0) | 原型 | XItem * newItem(int tid = 0) | | 描述 | 构造类型为tid的数据对象,该数据对象不能被索引 | | 参数 | [i]int tid = 0: 指定数据对象类型ID, 如该管理器只管理一种数据对象则tid可给0值 | | 返回值 | 新建对象指针 | XItem * createItem(ulong id = 0, int tid = 0) | 原型 | XItem * createItem(ulong id = 0, int tid = 0) | | 描述 | 新建数据对象并加入到管理器中(可通过ID索引数据对象) | | 参数 | [i]ulong id = 0: 数据对象的ID,如为0,则ID为自动分配 \\ [i] int tid = 0:数据对象的类型ID | | 返回值 | 数据对象的指针 | void destroyItem(XItem * itm, bool bDestruct = true) | 原型 | void destroyItem(XItem * itm, bool bDestruct = true) | | 描述 | 销毁对象 | | 参数 | [i]XItem * itm: 数据对象指针 \\ [i] bool bDestruct = true: 是否延迟销毁 | | 返回值 | 无 | const XItem * getItem(ulong id) const | 原型 | const XItem * getItem(ulong id) const | | 描述 | 通过ID索引数据对象 | | 参数 | [i]ulong id: 数据对象ID | | 返回值 | 数据对象指针,如ID为id的对象不存在返回NULL | virtual void setPrevNext(XItem * item, int prevID, int nextID) | 原型 | virtual void setPrevNext(XItem * item, int prevID, int nextID) | | 描述 | 为有序对象设置前置后置对象 | | 参数 | [i]XItem * item: 有序对象 \\ [i] int prevID: 前置对象ID \\ [i] int nextID: 后置对象ID | | 返回值 | 无 | virtual void serializePrevNext(XBinaryIO * io, XItem * obj, bool bSave) | 原型 | virtual void serializePrevNext(XBinaryIO * io, XItem * obj, bool bSave) | | 描述 | 序列化有序对象,在记录数据操作时调用 | | 参数 | [i]XBinaryIO * io: 二进制文件句柄 \\ [i] XItem * obj: 有序对象 \\ [i] bool bSave: 是否保存 | | 返回值 | 无 | virtual void write(XH5IO * io, H5Obj * grp) | 原型 | virtual void write(XH5IO * io, H5Obj * grp) | | 描述 | 将数据对象写入到H5文件中 | | 参数 | [i]XH5IO * io: H5文件句柄 \\ [i] H5Obj * grp: 管理器所在的H5节点 | | 返回值 | 无 | XItem * serializeRecord(XBinaryIO * io, int & opn, bool bUndo) | 原型 | XItem * serializeRecord(XBinaryIO * io, int & opn, bool bUndo) | | 描述 | 在undo或redo时序列化对象 | | 参数 | [i]XBinaryIO * io: 二进制文件句柄 \\ [i] int & opn: 数据的操作类型(增加、删除或修改) \\ [i] bool bUndo: 是否undo | | 返回值 | 返回数据对象的指针 | virtual void serialize(XBinaryIO * io, XItem * obj, bool bSave) = 0 | 原型 | virtual void serialize(XBinaryIO * io, XItem * obj, bool bSave) = 0 | | 描述 | 序列化数据对象 | | 参数 | [i]XBinaryIO * io: 二进制文件句柄 \\ [i] XItem * obj: 数据对象 \\ [i] bool bSave: 是否保存 | | 返回值 | 无 | virtual void serializeLinks(XBinaryIO * io, XItem * obj, bool bSave) | 原型 | virtual void serializeLinks(XBinaryIO * io, XItem * obj, bool bSave) | | 描述 | 序列化数据对象的引用对象 | | 参数 | [i]XBinaryIO * io: 二进制文件句柄 \\ [i] XItem * obj: 数据对象 \\ [i] bool bSave: 是否保存 | | 返回值 | 无 | virtual void linkItem(XItem * master, const XItem * slave, bool bAttach) | 原型 | virtual void linkItem(XItem * master, const XItem * slave, bool bAttach) | | 描述 | 定义数据对象的引用关系 | | 参数 | [i]XItem * master: 数据对象 \\ [i] const XItem * slave: 被应用的对象 \\ [i] bool bAttach: 是否添加引用关系(如否则为解除引用关系) | | 返回值 | 无 | virtual const XItem * getLinkItem(TypeID type, ulong id) | 原型 | virtual const XItem * getLinkItem(TypeID type, ulong id) | | 描述 | 获取引用对象 | | 参数 | [i]TypeID type: 引用对象类型 \\ [i] ulong id: 引用对象ID | | 返回值 | 引用对象指针 | virtual void bindLinkManager(TypeID domanType, XManager * mgr) | 原型 | virtual void bindLinkManager(TypeID domanType, XManager * mgr) | | 描述 | 设置引用对象管理器(用来索引引用对象) | | 参数 | [i]TypeID domanType: 引用对象的域ID \\ [i] XManager * mgr: 引用对象的管理器 | | 返回值 | 无 | void serializeLinkItem(XBinaryIO * record, const XItem *& obj, bool bSave) | 原型 | void serializeLinkItem(XBinaryIO * record, const XItem *& obj, bool bSave) | | 描述 | 序列化引用对象(用于记录数据操作) | | 参数 | [i]XBinaryIO * io: 数据操作记录文件句柄 \\ [i] const XItem *& obj: 数据对象 \\ [i] bool bSave: 是否保存 | | 返回值 | 无 | void bindItemIterator(ItemIterator * iter) const | 原型 | void bindItemIterator(ItemIterator * iter) const | | 描述 | 绑定对象遍历器 | | 参数 | [i]ItemIterator * iter: 对象遍历器 | | 返回值 | 无 | ulong getItemCount() const | 原型 | ulong getItemCount() const | | 描述 | 获取对象数目 | | 参数 | 无 | | 返回值 | 对象数目 | virtual void clear() | 原型 | virtual void clear() | | 描述 | 清空对象 | | 参数 | 无 | | 返回值 | 无 | virtual void recordExchange(XItem * item, XBinaryIO * io) | 原型 | virtual void recordExchange(XItem * item, XBinaryIO * io) | | 描述 | 从数据操作记录文件中存取数据对象 | | 参数 | [i]XItem * item: 数据对象 \\ [i] XBinaryIO * io: 数据操作记录文件句柄 | | 返回值 | 无 | ulong getNextItemId() const | 原型 | ulong getNextItemId() const | | 描述 | 获取下一个对象ID(为对象自动分配ID时使用) | | 参数 | 无 | | 返回值 | 下一个对象ID | void setNextItemId(ulong id) | 原型 | void setNextItemId(ulong id) | | 描述 | 设置下一个对象ID(为对象自动分配ID时使用) | | 参数 | [i]ulong id: 下一个对象ID | | 返回值 | 无 | void getNextItemName(const char * curName, string * name) const | 原型 | void getNextItemName(const char * curName, string * name) const | | 描述 | 根据当前名字获取下一个可用命名 | | 参数 | [i]const char * curName: 当前名字 \\ [i] string * name: 下一个名字 | | 返回值 | 无 | void sortItemById(vector * item_list) const | 原型 | void sortItemById(vector * item_list) const | | 描述 | 将数据对象按照ID的升序排列输出为对象数组 | | 参数 | [i]vector * item_list: 对象数组 | | 返回值 | 无 | void sortItemByName(vector * item_list) | 原型 | void sortItemByName(vector * item_list) | | 描述 | 将数据对象按照对象名的升序排列输出为数组 | | 参数 | [i]vector * item_list: 对象指针数组 | | 返回值 | 无 | const NItem * getItemByName(const char * name, ulong excludeID = 0) | 原型 | const NItem * getItemByName(const char * name, ulong excludeID = 0) | | 描述 | 通过名字索引对象 | | 参数 | [i]const char * name: 对象名字 \\ [i] ulong excludeID = 0: 排除给定ID(不为0)的对象 | | 返回值 | 对象指针 | void updateAllCache() | 原型 | void updateAllCache() | | 描述 | 更新所有数据对象的缓存信息 | | 参数 | 无 | | 返回值 | 无 | virtual bool getObjectPropertySheet(const XItem * obj, vector * prpSheet) | 原型 | virtual bool getObjectPropertySheet(const XItem * obj, vector * prpSheet) | | 描述 | 获取数据对象的属性清单 | | 参数 | [i]const XItem * obj: 数据对象 \\ [i] vector * prpSheet: 属性清单 | | 返回值 | 成功获取返回true,否则返回false | void reIndexItem(const XItem * item, ulong ulNewID) | 原型 | void reIndexItem(const XItem * item, ulong ulNewID) | | 描述 | 对数据对象重新编号 | | 参数 | [i]const XItem * item: 数据对象 \\ [i] ulong ulNewID: 新的编号 | | 返回值 | 无 | virtual void updatePrevNext(XItem * item, int prevID, int nextID) | 原型 | virtual void updatePrevNext(XItem * item, int prevID, int nextID) | | 描述 | 更新有序对象的前后对象信息 | | 参数 | [i]XItem * item: 有序对象 \\ [i] int prevID: 前置对象ID \\ [i] int nextID: 后置对象ID | | 返回值 | 无 |