// 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 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) { initializerById[id] = initializer; initializer->catalog = weak_this(this); initializer->id = id; } StrongPtr 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