User Tools

Site Tools


ftbl:class:domain:xmanager

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<const XItem*> * itemArr, TypeID tid = DItem_Unknown)

原型 virtual void collectItems(vector<const XItem*> * itemArr, TypeID tid = DItem_Unknown)
描述 收集管理器中的数据对象
参数 [i]vector<const XItem*> * 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<ItemPtr> * item_list) const

原型 void sortItemById(vector<ItemPtr> * item_list) const
描述 将数据对象按照ID的升序排列输出为对象数组
参数 [i]vector<ItemPtr> * item_list: 对象数组
返回值

void sortItemByName(vector<NItem*> * item_list)

原型 void sortItemByName(vector<NItem*> * item_list)
描述 将数据对象按照对象名的升序排列输出为数组
参数 [i]vector<NItem*> * 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<ObjPropertyEntry> * prpSheet)

原型 virtual bool getObjectPropertySheet(const XItem * obj, vector<ObjPropertyEntry> * prpSheet)
描述 获取数据对象的属性清单
参数 [i]const XItem * obj: 数据对象
[i] vector<ObjPropertyEntry> * 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
返回值
ftbl/class/domain/xmanager.txt · Last modified: 2025/05/09 14:46 (external edit)