52 lines
884 B
C++
52 lines
884 B
C++
// TJP COPYRIGHT HEADER
|
|
|
|
#include "Initializer.hpp"
|
|
|
|
namespace tjp {
|
|
namespace core {
|
|
namespace initializer {
|
|
|
|
//void deallocate(Initializer *v)
|
|
//{
|
|
// delete v;
|
|
//}
|
|
|
|
Initializer::Initializer(Initializers &&initializers_) :
|
|
initializers(initializers_)
|
|
{
|
|
}
|
|
|
|
StrongPtr<Initializer> Catalog::get(const std::string &id)
|
|
{
|
|
auto i = initializerById.find(id);
|
|
if (i != initializerById.end())
|
|
return i->second;
|
|
|
|
return nullptr;
|
|
}
|
|
|
|
void Catalog::put(const std::string &id, const StrongPtr<Initializer> &initializer)
|
|
{
|
|
initializerById[id] = initializer;
|
|
initializer->catalog = weak_this(this);
|
|
initializer->id = id;
|
|
}
|
|
|
|
|
|
StrongPtr<Initializer> Initializer::getInitializer(const std::string &id)
|
|
{
|
|
if (id.empty())
|
|
return strong_this(this);
|
|
|
|
if (auto catalog_ = strong(catalog))
|
|
{
|
|
return catalog_->get(id);
|
|
}
|
|
|
|
return nullptr;
|
|
}
|
|
|
|
} // namespace
|
|
} // namespace
|
|
} // namespace
|