28 #ifndef itkObjectFactoryBase_h
29 #define itkObjectFactoryBase_h
59 struct ObjectFactoryBasePrivate;
85 static std::list< LightObject::Pointer >
86 CreateAllInstance(
const char *itkclassname);
109 } InsertionPositionType;
130 InsertionPositionType where=INSERT_AT_BACK,
size_t position = 0);
137 static void UnRegisterAllFactories();
141 static std::list< ObjectFactoryBase * > GetRegisteredFactories();
148 virtual const char * GetITKSourceVersion()
const = 0;
155 static void SetStrictVersionChecking(
bool );
156 static void StrictVersionCheckingOn();
157 static void StrictVersionCheckingOff();
158 static bool GetStrictVersionChecking();
162 virtual const char * GetDescription()
const = 0;
165 virtual std::list< std::string > GetClassOverrideNames();
168 virtual std::list< std::string > GetClassOverrideWithNames();
171 virtual std::list< std::string > GetClassOverrideDescriptions();
174 virtual std::list< bool > GetEnableFlags();
177 virtual void SetEnableFlag(
bool flag,
178 const char *className,
179 const char *subclassName);
182 virtual bool GetEnableFlag(
const char *className,
183 const char *subclassName);
188 virtual void Disable(
const char *className);
191 const char * GetLibraryPath();
205 void PrintSelf(std::ostream & os,
Indent indent)
const override;
208 void RegisterOverride(
const char *classOverride,
209 const char *overrideClassName,
210 const char *description,
222 virtual std::list< LightObject::Pointer >
223 CreateAllObject(
const char *itkclassname);
232 static void SynchronizeObjectFactoryBase(
void * objectFactoryBasePrivate);
239 static void InitializeFactoryList();
243 static void Initialize();
246 static void RegisterInternal();
249 static void LoadDynamicFactories();
252 static void LoadLibrariesInPath(
const char *);
std::string m_LibraryPath
Light weight base class for most itk classes.
static ObjectFactoryBasePrivate * m_PimplGlobals
Create instances of classes using an object factory.
#define itkGetGlobalDeclarationMacro(Type, VarName)
Define API for object creation callback functions.
Control indentation during Print() invocation.
Base class for most ITK classes.
OverRideMap * m_OverrideMap
unsigned long m_LibraryDate