28 #ifndef itkObjectFactoryBase_h
29 #define itkObjectFactoryBase_h
78 CreateInstance(
const char * itkclassname);
84 static std::list<LightObject::Pointer>
85 CreateAllInstance(
const char * itkclassname);
103 #if !defined(ITK_LEGACY_REMOVE)
108 static constexpr
InsertionPositionEnum INSERT_AT_POSITION = InsertionPositionEnum::INSERT_AT_POSITION;
132 size_t position = 0);
141 UnRegisterAllFactories();
145 static std::list<ObjectFactoryBase *>
146 GetRegisteredFactories();
154 GetITKSourceVersion()
const = 0;
162 SetStrictVersionChecking(
bool);
164 StrictVersionCheckingOn();
166 StrictVersionCheckingOff();
168 GetStrictVersionChecking();
173 GetDescription()
const = 0;
176 virtual std::list<std::string>
177 GetClassOverrideNames();
180 virtual std::list<std::string>
181 GetClassOverrideWithNames();
184 virtual std::list<std::string>
185 GetClassOverrideDescriptions();
188 virtual std::list<bool>
193 SetEnableFlag(
bool flag,
const char * className,
const char * subclassName);
197 GetEnableFlag(
const char * className,
const char * subclassName);
203 Disable(
const char * className);
211 template <
typename TFactory>
215 struct FactoryRegistration
219 static const FactoryRegistration staticFactoryRegistration = [] {
221 return FactoryRegistration{};
224 (void)staticFactoryRegistration;
234 PrintSelf(std::ostream & os,
Indent indent)
const override;
238 RegisterOverride(
const char * classOverride,
239 const char * subclass,
240 const char * description,
248 CreateObject(
const char * itkclassname);
253 virtual std::list<LightObject::Pointer>
254 CreateAllObject(
const char * itkclassname);
262 class ObjectFactoryBasePrivate;
267 SynchronizeObjectFactoryBase(
void * objectFactoryBasePrivate);
275 InitializeFactoryList();
283 LoadDynamicFactories();
287 LoadLibrariesInPath(
const char *);
294 void * m_LibraryHandle{};
295 unsigned long m_LibraryDate{};
296 std::string m_LibraryPath{};