28 #ifndef itkObjectFactoryBase_h
29 #define itkObjectFactoryBase_h
60 class ObjectFactoryBasePrivate;
81 CreateInstance(
const char * itkclassname);
87 static std::list<LightObject::Pointer>
88 CreateAllInstance(
const char * itkclassname);
106 #if !defined(ITK_LEGACY_REMOVE)
111 static constexpr
InsertionPositionEnum INSERT_AT_POSITION = InsertionPositionEnum::INSERT_AT_POSITION;
135 size_t position = 0);
144 UnRegisterAllFactories();
148 static std::list<ObjectFactoryBase *>
149 GetRegisteredFactories();
157 GetITKSourceVersion()
const = 0;
165 SetStrictVersionChecking(
bool);
167 StrictVersionCheckingOn();
169 StrictVersionCheckingOff();
171 GetStrictVersionChecking();
176 GetDescription()
const = 0;
179 virtual std::list<std::string>
180 GetClassOverrideNames();
183 virtual std::list<std::string>
184 GetClassOverrideWithNames();
187 virtual std::list<std::string>
188 GetClassOverrideDescriptions();
191 virtual std::list<bool>
196 SetEnableFlag(
bool flag,
const char * className,
const char * subclassName);
200 GetEnableFlag(
const char * className,
const char * subclassName);
206 Disable(
const char * className);
226 template <
typename TFactory>
230 struct FactoryRegistration
234 static const FactoryRegistration staticFactoryRegistration = [] {
236 return FactoryRegistration{};
239 (void)staticFactoryRegistration;
249 PrintSelf(std::ostream & os,
Indent indent)
const override;
253 RegisterOverride(
const char * classOverride,
254 const char * subclass,
255 const char * description,
263 CreateObject(
const char * itkclassname);
268 virtual std::list<LightObject::Pointer>
269 CreateAllObject(
const char * itkclassname);
278 SynchronizeObjectFactoryBase(
void * objectFactoryBasePrivate);
286 InitializeFactoryList();
294 LoadDynamicFactories();
298 LoadLibrariesInPath(
const char *);