Main Page | Directories | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

vtkObjectFactory Class Reference

#include <vtkObjectFactory.h>

Inheritance diagram for vtkObjectFactory:

Inheritance graph
[legend]
Collaboration diagram for vtkObjectFactory:

Collaboration graph
[legend]
List of all members.

Detailed Description

abstract base class for vtkObjectFactories

vtkObjectFactory is used to create vtk objects. The base class vtkObjectFactory contains a static method CreateInstance which is used to create vtk objects from the list of registered vtkObjectFactory sub-classes. The first time CreateInstance is called, all dll's or shared libraries in the environment variable VTK_AUTOLOAD_PATH are loaded into the current process. The C functions vtkLoad, vtkGetFactoryCompilerUsed, and vtkGetFactoryVersion are called on each dll. To implement these functions in a shared library or dll, use the macro: VTK_FACTORY_INTERFACE_IMPLEMENT. VTK_AUTOLOAD_PATH is an environment variable containing a colon separated (semi-colon on win32) list of paths.

The vtkObjectFactory can be use to override the creation of any object in VTK with a sub-class of that object. The factories can be registered either at run time with the VTK_AUTOLOAD_PATH, or at compile time with the vtkObjectFactory::RegisterFactory method.

Created by:
  • Hoffman, Bill
CVS contributions (if > 5%):
  • Hoffman, Bill (84%)
  • Martin, Ken (5%)
CVS logs (CVSweb):
  • .h (/Common/vtkObjectFactory.h)
  • .cxx (/Common/vtkObjectFactory.cxx)
Tests:
vtkObjectFactory (Tests)

Definition at line 63 of file vtkObjectFactory.h.

Public Types

typedef vtkObject Superclass
typedef vtkObject *(* CreateFunction )()

Public Member Functions

virtual const char * GetClassName ()
virtual int IsA (const char *type)
virtual void PrintSelf (ostream &os, vtkIndent indent)
virtual const char * GetVTKSourceVersion ()=0
virtual const char * GetDescription ()=0
virtual int GetNumberOfOverrides ()
virtual const char * GetClassOverrideName (int index)
virtual const char * GetClassOverrideWithName (int index)
virtual int GetEnableFlag (int index)
virtual const char * GetOverrideDescription (int index)
virtual void Disable (const char *className)
virtual void SetEnableFlag (int flag, const char *className, const char *subclassName)
virtual int GetEnableFlag (const char *className, const char *subclassName)
virtual int HasOverride (const char *className)
virtual int HasOverride (const char *className, const char *subclassName)
virtual char * GetLibraryPath ()

Static Public Member Functions

vtkObjectCreateInstance (const char *vtkclassname)
vtkObjectFactoryCollectionGetRegisteredFactories ()
int HasOverrideAny (const char *className)
int IsTypeOf (const char *type)
vtkObjectFactorySafeDownCast (vtkObject *o)
void CreateAllInstance (const char *vtkclassname, vtkCollection *retList)
void ReHash ()
void RegisterFactory (vtkObjectFactory *)
void UnRegisterFactory (vtkObjectFactory *)
void UnRegisterAllFactories ()
void GetOverrideInformation (const char *name, vtkOverrideInformationCollection *)
void SetAllEnableFlags (int flag, const char *className)
void SetAllEnableFlags (int flag, const char *className, const char *subclassName)

Protected Member Functions

virtual vtkObjectCreateObject (const char *vtkclassname)
 vtkObjectFactory ()
 ~vtkObjectFactory ()
void RegisterOverride (const char *classOverride, const char *overrideClassName, const char *description, int enableFlag, CreateFunction createFunction)

Protected Attributes

OverrideInformationOverrideArray
char ** OverrideClassNames
int SizeOverrideArray
int OverrideArrayLength


Member Typedef Documentation

typedef vtkObject vtkObjectFactory::Superclass
 

Reimplemented from vtkObject.

Reimplemented in vtkParallelFactory, and vtkKitwareObjectFactory.

Definition at line 126 of file vtkObjectFactory.h.

typedef vtkObject*(* vtkObjectFactory::CreateFunction)()
 

Definition at line 185 of file vtkObjectFactory.h.


Constructor & Destructor Documentation

vtkObjectFactory::vtkObjectFactory  )  [protected]
 

vtkObjectFactory::~vtkObjectFactory  )  [protected]
 


Member Function Documentation

vtkObject* vtkObjectFactory::CreateInstance const char *  vtkclassname  )  [static]
 

Create and return an instance of the named vtk object. Each loaded vtkObjectFactory will be asked in the order the factory was in the VTK_AUTOLOAD_PATH. After the first factory returns the object no other factories are asked.

void vtkObjectFactory::CreateAllInstance const char *  vtkclassname,
vtkCollection retList
[static]
 

Create all possible instances of the named vtk object. Each registered vtkObjectFactory will be asked, and the result will be stored in the user allocated vtkCollection passed in to the function.

void vtkObjectFactory::ReHash  )  [static]
 

Create all possible instances of the named vtk object. Each registered vtkObjectFactory will be asked, and the result will be stored in the user allocated vtkCollection passed in to the function.

void vtkObjectFactory::RegisterFactory vtkObjectFactory  )  [static]
 

Create all possible instances of the named vtk object. Each registered vtkObjectFactory will be asked, and the result will be stored in the user allocated vtkCollection passed in to the function.

void vtkObjectFactory::UnRegisterFactory vtkObjectFactory  )  [static]
 

Create all possible instances of the named vtk object. Each registered vtkObjectFactory will be asked, and the result will be stored in the user allocated vtkCollection passed in to the function.

void vtkObjectFactory::UnRegisterAllFactories  )  [static]
 

Create all possible instances of the named vtk object. Each registered vtkObjectFactory will be asked, and the result will be stored in the user allocated vtkCollection passed in to the function.

vtkObjectFactoryCollection* vtkObjectFactory::GetRegisteredFactories  )  [static]
 

Return the list of all registered factories. This is NOT a copy, do not remove items from this list!

int vtkObjectFactory::HasOverrideAny const char *  className  )  [static]
 

return 1 if one of the registered factories overrides the given class name

void vtkObjectFactory::GetOverrideInformation const char *  name,
vtkOverrideInformationCollection
[static]
 

Fill the given collection with all the overrides for the class with the given name.

void vtkObjectFactory::SetAllEnableFlags int  flag,
const char *  className
[static]
 

Set the enable flag for a given named class for all registered factories.

void vtkObjectFactory::SetAllEnableFlags int  flag,
const char *  className,
const char *  subclassName
[static]
 

Set the enable flag for a given named class for all registered factories.

virtual const char* vtkObjectFactory::GetClassName  )  [virtual]
 

Reimplemented from vtkObject.

Reimplemented in vtkParallelFactory, and vtkKitwareObjectFactory.

int vtkObjectFactory::IsTypeOf const char *  type  )  [static]
 

Return 1 if this class type is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeRevisionMacro found in vtkSetGet.h.

Reimplemented from vtkObject.

Reimplemented in vtkParallelFactory, and vtkKitwareObjectFactory.

virtual int vtkObjectFactory::IsA const char *  type  )  [virtual]
 

Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeRevisionMacro found in vtkSetGet.h.

Reimplemented from vtkObject.

Reimplemented in vtkParallelFactory, and vtkKitwareObjectFactory.

vtkObjectFactory* vtkObjectFactory::SafeDownCast vtkObject o  )  [static]
 

Reimplemented from vtkObject.

Reimplemented in vtkParallelFactory, and vtkKitwareObjectFactory.

virtual void vtkObjectFactory::PrintSelf ostream &  os,
vtkIndent  indent
[virtual]
 

Print ObjectFactory to stream.

Reimplemented from vtkObject.

Reimplemented in vtkParallelFactory, and vtkKitwareObjectFactory.

virtual const char* vtkObjectFactory::GetVTKSourceVersion  )  [pure virtual]
 

All sub-classes of vtkObjectFactory should must return the version of VTK they were built with. This should be implemented with the macro VTK_SOURCE_VERSION and NOT a call to vtkVersion::GetVTKSourceVersion. As the version needs to be compiled into the file as a string constant. This is critical to determine possible incompatible dynamic factory loads.

Implemented in vtkParallelFactory, and vtkKitwareObjectFactory.

virtual const char* vtkObjectFactory::GetDescription  )  [pure virtual]
 

Return a descriptive string describing the factory.

Implemented in vtkParallelFactory.

virtual int vtkObjectFactory::GetNumberOfOverrides  )  [virtual]
 

Return number of overrides this factory can create.

virtual const char* vtkObjectFactory::GetClassOverrideName int  index  )  [virtual]
 

Return the name of a class override at the given index.

virtual const char* vtkObjectFactory::GetClassOverrideWithName int  index  )  [virtual]
 

Return the name of the class that will override the class at the given index

virtual int vtkObjectFactory::GetEnableFlag int  index  )  [virtual]
 

Return the enable flag for the class at the given index.

virtual const char* vtkObjectFactory::GetOverrideDescription int  index  )  [virtual]
 

Return the description for a the class override at the given index.

virtual void vtkObjectFactory::SetEnableFlag int  flag,
const char *  className,
const char *  subclassName
[virtual]
 

Set and Get the Enable flag for the specific override of className. if subclassName is null, then it is ignored.

virtual int vtkObjectFactory::GetEnableFlag const char *  className,
const char *  subclassName
[virtual]
 

Set and Get the Enable flag for the specific override of className. if subclassName is null, then it is ignored.

virtual int vtkObjectFactory::HasOverride const char *  className  )  [virtual]
 

Return 1 if this factory overrides the given class name, 0 otherwise.

virtual int vtkObjectFactory::HasOverride const char *  className,
const char *  subclassName
[virtual]
 

Return 1 if this factory overrides the given class name, 0 otherwise.

virtual void vtkObjectFactory::Disable const char *  className  )  [virtual]
 

Set all enable flags for the given class to 0. This will mean that the factory will stop producing class with the given name.

virtual char* vtkObjectFactory::GetLibraryPath  )  [virtual]
 

This returns the path to a dynamically loaded factory.

void vtkObjectFactory::RegisterOverride const char *  classOverride,
const char *  overrideClassName,
const char *  description,
int  enableFlag,
CreateFunction  createFunction
[protected]
 

Register object creation information with the factory.

virtual vtkObject* vtkObjectFactory::CreateObject const char *  vtkclassname  )  [protected, virtual]
 

This method is provided by sub-classes of vtkObjectFactory. It should create the named vtk object or return 0 if that object is not supported by the factory implementation.

Reimplemented in vtkKitwareObjectFactory.


Member Data Documentation

OverrideInformation* vtkObjectFactory::OverrideArray [protected]
 

Definition at line 218 of file vtkObjectFactory.h.

char** vtkObjectFactory::OverrideClassNames [protected]
 

Definition at line 219 of file vtkObjectFactory.h.

int vtkObjectFactory::SizeOverrideArray [protected]
 

Definition at line 220 of file vtkObjectFactory.h.

int vtkObjectFactory::OverrideArrayLength [protected]
 

Definition at line 221 of file vtkObjectFactory.h.


The documentation for this class was generated from the following file: