DPS/DataPlatform/DataManager.h

73 lines
1.7 KiB
C
Raw Normal View History

2025-06-23 10:41:33 +08:00
#ifndef DATAMANAGER_H
#define DATAMANAGER_H
#include<QList>
#include "DPData.h"
#include "DBPlatformNew.h"
#include "SysManager.h"
2025-06-23 18:01:09 +08:00
//根结点,管理所有数据
2025-06-23 10:41:33 +08:00
class DataManager :public DPData
{
Q_OBJECT
public:
DataManager();
~DataManager();
enum class DataType
{
project,
dataModel,
dataPack,
dataClass,
dataAttribute,
scene
};
public:
2025-06-23 18:01:09 +08:00
/*增加child数据*/
2025-06-23 10:41:33 +08:00
bool addChild(DPData* newData);
2025-06-23 18:01:09 +08:00
/*删除一条child数据*/
2025-06-23 10:41:33 +08:00
bool deleteChild(unsigned int id);
2025-06-23 18:01:09 +08:00
/*获取所有下层数据*/
2025-06-23 10:41:33 +08:00
void getAllChildren(DPData* pManager=nullptr, bool reload = false);
void clearAllProject();
void insertDataMap(DataType type, unsigned int id, DPData* pData);
void deleteInDataMap(DataType type, unsigned int id);
DPData* findObjectById(DataType type, int id);
2025-06-23 18:01:09 +08:00
//查找指定数据模型下的数据对象
2025-06-23 10:41:33 +08:00
DPData* findobjectByNameInDatamodel(int type, QString propertyName, QString name, int dataModelId);
DataType transformType(int type);
2025-06-23 18:01:09 +08:00
//获取指定数据类型的map
2025-06-23 10:41:33 +08:00
void getDataMap(DataType type, QMap<unsigned int, DPData*>& map);
2025-06-23 18:01:09 +08:00
/*最近打开两个项目*/
2025-06-23 10:41:33 +08:00
QList<DPData*> lastProject;
DBPlatformSpace::DBPlatformNew* pTheDBPlatform = nullptr;
2025-06-23 18:01:09 +08:00
bool _dbConnected = false; //数据库连接状态
2025-06-23 10:41:33 +08:00
private:
2025-06-23 18:01:09 +08:00
QMap<unsigned int, DPData*> platformDataMap; //所有数据对象---之后删除
2025-06-23 10:41:33 +08:00
QMap<unsigned int, DPData*> mapProject;
QMap<unsigned int, DPData*> mapDataModel;
QMap<unsigned int, DPData*> mapDataPack;
QMap<unsigned int, DPData*> mapDataClass;
QMap<unsigned int, DPData*> mapDataAttribute;
QMap<unsigned int, DPData*> mapDataScene;
QMap<DataType, QMap<unsigned int, DPData*>> platformData;
};
DataManager& GetDataRoot();
#endif