7
#include "Precompiled.h"
8
#include "DataTypeManager.h"
10
#include "MyGUI_DataManager.h"
15
DataTypeManager* DataTypeManager::mInstance = nullptr;
17
DataTypeManager::DataTypeManager()
22
DataTypeManager::~DataTypeManager()
27
DataTypeManager& DataTypeManager::getInstance()
32
DataTypeManager* DataTypeManager::getInstancePtr()
37
void DataTypeManager::initialise()
41
void DataTypeManager::shutdown()
46
void DataTypeManager::load(const std::string& _fileName)
48
std::string fileName = MyGUI::DataManager::getInstance().getDataPath(_fileName);
49
pugi::xml_document doc;
50
pugi::xml_parse_result result = doc.load_file(fileName.c_str());
53
pugi::xpath_node_set nodes = doc.select_nodes("Document/DataTypes/DataType");
54
for (pugi::xpath_node_set::const_iterator node = nodes.begin(); node != nodes.end(); node ++)
56
DataTypePtr data = DataTypePtr(new DataType());
57
data->deserialization((*node).node());
58
mDataInfos.push_back(data);
63
void DataTypeManager::clear()
68
DataTypePtr DataTypeManager::getType(const std::string& _type)
70
for (VectorDataInfo::const_iterator data = mDataInfos.begin(); data != mDataInfos.end(); data ++)
72
if ((*data)->getName() == _type)
79
DataTypePtr DataTypeManager::getParentType(const std::string& _type)
81
for (VectorDataInfo::const_iterator data = mDataInfos.begin(); data != mDataInfos.end(); data ++)
83
if ((*data)->isChild(_type))