44#ifndef _INCLUDED_Field3D_ClassFactory_H_
45#define _INCLUDED_Field3D_ClassFactory_H_
47#include <boost/scoped_ptr.hpp>
Contains the FieldMappingIO base class and the NullFieldMappingIO and MatrixFieldMappingIO subclasses...
Contains Field, WritableField and ResizableField classes.
std::map< std::string, CreateFieldMappingFnPtr > FieldMappingFuncMap
FieldIO::Ptr(* CreateFieldIOFnPtr)()
FieldRes::Ptr createField(const std::string &className) const
Instances an object by name.
FieldIO::Ptr createFieldIO(const std::string &className) const
Instances an IO object by name.
static ClassFactory & singleton()
}
std::vector< std::string > NameVec
ClassFactory()
Standard constructor.
FieldMappingIO::Ptr(* CreateFieldMappingIOFnPtr)()
FieldMappingIOFuncMap m_mappingIOs
Map of create functions for FieldMapping IO classes. The key is the class name.
FieldMapping::Ptr createFieldMapping(const std::string &className) const
Instances an object by name.
FieldMappingIO::Ptr createFieldMappingIO(const std::string &className) const
Instances an IO object by name.
std::map< std::string, CreateFieldFnPtr > FieldFuncMap
static boost::scoped_ptr< ClassFactory > ms_instance
Pointer to static instance.
FieldRes::Ptr(* CreateFieldFnPtr)()
void registerField(CreateFieldFnPtr createFunc)
Registers a class with the class pool.
void registerFieldMapping(CreateFieldMappingFnPtr createFunc)
Registers a class with the class pool.
void registerFieldIO(CreateFieldIOFnPtr createFunc)
Registers an IO class with the class pool.
void registerFieldMappingIO(CreateFieldMappingIOFnPtr createFunc)
Registers an IO class with the class pool.
NameVec m_fieldMappingIONames
std::map< std::string, CreateFieldIOFnPtr > FieldIOFuncMap
FieldMappingFuncMap m_mappings
Map of create functions for FieldMappings. The key is the class name.
FieldFuncMap m_fields
Map of create functions for Fields. The key is the class name.
FieldIOFuncMap m_fieldIOs
Map of create functions for FieldIO classes. The key is the class name.
FieldMapping::Ptr(* CreateFieldMappingFnPtr)()
std::map< std::string, CreateFieldMappingIOFnPtr > FieldMappingIOFuncMap
NameVec m_fieldMappingNames
boost::intrusive_ptr< FieldIO > Ptr
boost::intrusive_ptr< FieldMappingIO > Ptr
boost::intrusive_ptr< FieldMapping > Ptr
boost::intrusive_ptr< FieldRes > Ptr
#define FIELD3D_NAMESPACE_HEADER_CLOSE