28 #ifndef itkObjectFactoryBase_h
29 #define itkObjectFactoryBase_h
58 struct ObjectFactoryBasePrivate;
83 static std::list< LightObject::Pointer >
84 CreateAllInstance(
const char *itkclassname);
107 } InsertionPositionType;
128 InsertionPositionType where=INSERT_AT_BACK,
size_t position = 0);
135 static void UnRegisterAllFactories();
139 static std::list< ObjectFactoryBase * > GetRegisteredFactories();
146 virtual const char * GetITKSourceVersion(
void)
const = 0;
153 static void SetStrictVersionChecking(
bool );
154 static void StrictVersionCheckingOn();
155 static void StrictVersionCheckingOff();
156 static bool GetStrictVersionChecking();
160 virtual const char * GetDescription(
void)
const = 0;
163 virtual std::list< std::string > GetClassOverrideNames();
166 virtual std::list< std::string > GetClassOverrideWithNames();
169 virtual std::list< std::string > GetClassOverrideDescriptions();
172 virtual std::list< bool > GetEnableFlags();
175 virtual void SetEnableFlag(
bool flag,
176 const char *className,
177 const char *subclassName);
180 virtual bool GetEnableFlag(
const char *className,
181 const char *subclassName);
186 virtual void Disable(
const char *className);
189 const char * GetLibraryPath();
207 static ObjectFactoryBasePrivate *GetObjectFactoryBase();
208 static void SynchronizeObjectFactoryBase(ObjectFactoryBasePrivate * objectFactoryBasePrivate);
212 virtual void PrintSelf(std::ostream & os,
Indent indent)
const ITK_OVERRIDE;
215 void RegisterOverride(
const char *classOverride,
216 const char *overrideClassName,
217 const char *description,
229 virtual std::list< LightObject::Pointer >
230 CreateAllObject(
const char *itkclassname);
236 OverRideMap *m_OverrideMap;
241 static
void InitializeFactoryList();
245 static
void Initialize();
248 static
void RegisterInternal();
251 static
void LoadDynamicFactories();
254 static
void LoadLibrariesInPath(const
char *);
256 static
void DeleteNonInternalFactory( ObjectFactoryBase * );
260 void * m_LibraryHandle;
261 unsigned long m_LibraryDate;
262 std::
string m_LibraryPath;
264 static
bool m_StrictVersionChecking;
267 static ObjectFactoryBasePrivate * m_ObjectFactoryBasePrivate;
SmartPointer< const Self > ConstPointer
Create instances of classes using an object factory.
SmartPointer< Self > Pointer
Define API for object creation callback functions.
Control indentation during Print() invocation.
Base class for most ITK classes.