77 const std::string& class_name) {
82 Base* class_object = utility::CreateClassObj<Base>(class_name,
this);
83 if (class_object ==
nullptr) {
84 AWARN <<
"CreateClassObj failed, ensure class has been registered. "
86 return std::shared_ptr<Base>();
89 std::lock_guard<std::mutex> lck(classobj_ref_count_mutex_);
90 classobj_ref_count_ = classobj_ref_count_ + 1;
91 std::shared_ptr<Base> classObjSharePtr(
92 class_object, std::bind(&ClassLoader::OnClassObjDeleter<Base>,
this,
93 std::placeholders::_1));
94 return classObjSharePtr;