changed the way how we iterate through Models, instead of ModelWrapper now we have Wrapper which has pointers to: model, model container, space or date

This commit is contained in:
2021-07-01 23:21:20 +02:00
parent acb42f453c
commit 849b3e9ecc
3 changed files with 250 additions and 151 deletions

View File

@@ -40,7 +40,7 @@
#ifdef EZC_HAS_MORM_LIBRARY
#include "modelwrapper.h"
#include "wrapper.h"
#include "funinfo.h"
#include "space/space.h"
@@ -62,69 +62,80 @@ public:
void Add(const std::wstring & name, pt::Space & space);
void Add(const std::wstring & name, pt::Space * space);
void Add(const std::wstring & name, pt::Date & space);
void Add(const std::wstring & name, pt::Date * space);
template<typename VectorType>
void Add(const std::wstring & name, std::vector<VectorType> & container)
{
morm::ModelWrapper * model_wrapper = new morm::ModelWrapperVector<VectorType>(&container);
models_map[name] = model_wrapper;
morm::Wrapper wrapper;
wrapper.model_container_wrapper = new morm::ModelWrapperVector<VectorType>(&container);
models_map[name] = wrapper;
}
template<typename VectorType>
void Add(const std::wstring & name, std::vector<VectorType> * container)
{
morm::ModelWrapper * model_wrapper = new morm::ModelWrapperVector<VectorType>(container);
models_map[name] = model_wrapper;
morm::Wrapper wrapper;
wrapper.model_container_wrapper = new morm::ModelWrapperVector<VectorType>(container);
models_map[name] = wrapper;
}
template<typename VectorType>
void Add(const std::wstring & name, std::vector<VectorType*> & container)
{
morm::ModelWrapper * model_wrapper = new morm::ModelWrapperVectorPointer<VectorType>(&container);
models_map[name] = model_wrapper;
morm::Wrapper wrapper;
wrapper.model_container_wrapper = new morm::ModelWrapperVectorPointer<VectorType>(&container);
models_map[name] = wrapper;
}
template<typename VectorType>
void Add(const std::wstring & name, std::vector<VectorType*> * container)
{
morm::ModelWrapper * model_wrapper = new morm::ModelWrapperVectorPointer<VectorType>(container);
models_map[name] = model_wrapper;
morm::Wrapper wrapper;
wrapper.model_container_wrapper = new morm::ModelWrapperVectorPointer<VectorType>(container);
models_map[name] = wrapper;
}
template<typename ListType>
void Add(const std::wstring & name, std::list<ListType> & container)
{
morm::ModelWrapper * model_wrapper = new morm::ModelWrapperList<ListType>(&container);
models_map[name] = model_wrapper;
morm::Wrapper wrapper;
wrapper.model_container_wrapper = new morm::ModelWrapperList<ListType>(&container);
models_map[name] = wrapper;
}
template<typename ListType>
void Add(const std::wstring & name, std::list<ListType> * container)
{
morm::ModelWrapper * model_wrapper = new morm::ModelWrapperList<ListType>(container);
models_map[name] = model_wrapper;
morm::Wrapper wrapper;
wrapper.model_container_wrapper = new morm::ModelWrapperList<ListType>(container);
models_map[name] = wrapper;
}
template<typename ListType>
void Add(const std::wstring & name, std::list<ListType*> & container)
{
morm::ModelWrapper * model_wrapper = new morm::ModelWrapperListPointer<ListType>(&container);
models_map[name] = model_wrapper;
morm::Wrapper wrapper;
wrapper.model_container_wrapper = new morm::ModelWrapperListPointer<ListType>(&container);
models_map[name] = wrapper;
}
template<typename ListType>
void Add(const std::wstring & name, std::list<ListType*> * container)
{
morm::ModelWrapper * model_wrapper = new morm::ModelWrapperListPointer<ListType>(container);
models_map[name] = model_wrapper;
morm::Wrapper wrapper;
wrapper.model_container_wrapper = new morm::ModelWrapperListPointer<ListType>(container);
models_map[name] = wrapper;
}
morm::ModelWrapper * Find(const std::wstring & name);
morm::Wrapper * Find(const std::wstring & name);
void Clear();
protected:
std::map<std::wstring, morm::ModelWrapper*> models_map;
std::map<std::wstring, morm::Wrapper> models_map;
};