| 577 | |
| 578 | template <typename T> |
| 579 | Status ResourceMgr::Create(const string& container, const string& name, |
| 580 | T* resource) { |
| 581 | CheckDeriveFromResourceBase<T>(); |
| 582 | CHECK(resource != nullptr); |
| 583 | mutex_lock l(mu_); |
| 584 | return DoCreate(container, MakeTypeIndex<T>(), name, resource); |
| 585 | } |
| 586 | |
| 587 | template <typename T, bool use_dynamic_cast> |
| 588 | Status ResourceMgr::Lookup(const string& container, const string& name, |