Lines Matching refs:T
22 template <typename T>
24 std::function<T*(const std::string&, std::unique_ptr<T>*, std::string*)>;
45 template <typename T>
48 FactoryEntry(const std::string& name, FactoryFunc<T> f) in FactoryEntry()
55 T* NewFactoryObject(const std::string& target, std::unique_ptr<T>* guard, in NewFactoryObject()
62 FactoryFunc<T> factory_;
72 template <typename T>
73 const FactoryFunc<T>& Register(const std::string& pattern, in Register()
74 const FactoryFunc<T>& factory) { in Register()
75 std::unique_ptr<Entry> entry(new FactoryEntry<T>(pattern, factory)); in Register()
76 AddEntry(T::Type(), entry); in Register()
111 template <typename T>
112 T* NewObject(const std::string& target, std::unique_ptr<T>* guard, in NewObject()
115 const auto* basic = FindEntry(T::Type(), target); in NewObject()
118 static_cast<const ObjectLibrary::FactoryEntry<T>*>(basic); in NewObject()
121 *errmsg = std::string("Could not load ") + T::Type(); in NewObject()
131 template <typename T>
133 std::unique_ptr<T>* result) { in NewUniqueObject()
135 T* ptr = NewObject(target, result, &errmsg); in NewUniqueObject()
142 T::Type() + " from unguarded one ", in NewUniqueObject()
152 template <typename T>
154 std::shared_ptr<T>* result) { in NewSharedObject()
156 std::unique_ptr<T> guard; in NewSharedObject()
157 T* ptr = NewObject(target, &guard, &errmsg); in NewSharedObject()
165 T::Type() + " from unguarded one ", in NewSharedObject()
175 template <typename T>
176 Status NewStaticObject(const std::string& target, T** result) { in NewStaticObject()
178 std::unique_ptr<T> guard; in NewStaticObject()
179 T* ptr = NewObject(target, &guard, &errmsg); in NewStaticObject()
184 T::Type() + " from a guarded one ", in NewStaticObject()