OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
Public Member Functions | Static Public Member Functions | Private Member Functions | Static Private Attributes | List of all members
ossimOverviewBuilderFactoryRegistry Class Reference

The factory registry for overview builders. More...

#include <ossimOverviewBuilderFactoryRegistry.h>

Inheritance diagram for ossimOverviewBuilderFactoryRegistry:
ossimObjectFactory ossimFactoryListInterface< ossimOverviewBuilderFactoryBase, ossimOverviewBuilderBase > ossimObject ossimReferenced

Public Member Functions

virtual ossimObjectcreateObject (const ossimString &typeName) const
 
virtual ossimObjectcreateObject (const ossimKeywordlist &kwl, const char *prefix=0) const
 
ossimOverviewBuilderBasecreateBuilder (const ossimString &typeName) const
 Creates a builder from a string. More...
 
virtual void getTypeNameList (std::vector< ossimString > &typeList) const
 Method to populate a list of supported types of all factories registered to this registry. More...
 
- Public Member Functions inherited from ossimObjectFactory
virtual ~ossimObjectFactory ()
 
- Public Member Functions inherited from ossimObject
 ossimObject ()
 
virtual ~ossimObject ()
 
virtual ossimObjectdup () const
 
virtual ossimString getShortName () const
 
virtual ossimString getLongName () const
 
virtual ossimString getDescription () const
 
virtual ossimString getClassName () const
 
virtual RTTItypeid getType () const
 
virtual bool canCastTo (ossimObject *obj) const
 
virtual bool canCastTo (const RTTItypeid &id) const
 
virtual bool canCastTo (const ossimString &parentClassName) const
 
virtual bool saveState (ossimKeywordlist &kwl, const char *prefix=0) const
 
virtual bool loadState (const ossimKeywordlist &kwl, const char *prefix=0)
 
virtual std::ostream & print (std::ostream &out) const
 Generic print method. More...
 
virtual bool isEqualTo (const ossimObject &obj, ossimCompareType compareType=OSSIM_COMPARE_FULL) const
 
virtual void accept (ossimVisitor &visitor)
 
- Public Member Functions inherited from ossimReferenced
 ossimReferenced ()
 
 ossimReferenced (const ossimReferenced &)
 
ossimReferencedoperator= (const ossimReferenced &)
 
void ref () const
 increment the reference count by one, indicating that this object has another pointer which is referencing it. More...
 
void unref () const
 decrement the reference count by one, indicating that a pointer to this object is referencing it. More...
 
void unref_nodelete () const
 decrement the reference count by one, indicating that a pointer to this object is referencing it. More...
 
int referenceCount () const
 
- Public Member Functions inherited from ossimFactoryListInterface< ossimOverviewBuilderFactoryBase, ossimOverviewBuilderBase >
 ossimFactoryListInterface ()
 
void addFactory (ossimOverviewBuilderFactoryBase *factory)
 This is for backward compatability and calls registerFactory for simple adds. More...
 
bool isFactoryRegistered (ossimOverviewBuilderFactoryBase *factory) const
 Public access method to determine if a factory is already registered to this list. More...
 
void registerFactory (ossimOverviewBuilderFactoryBase *factory, bool pushToFrontFlag=false)
 Will register a factory to the factory list. More...
 
void unregisterFactory (ossimOverviewBuilderFactoryBase *factory)
 Will remove the factory from the registry. More...
 
void unregisterFactory (const ossimString &factoryTypeName)
 Will remove the factory from the registry by name. More...
 
void unregisterAllFactories ()
 Will remove all factories from the registry. More...
 
void registerFactoryToFront (ossimOverviewBuilderFactoryBase *factory)
 Inserts the factory to the front of the list. More...
 
void registerFactoryBefore (ossimOverviewBuilderFactoryBase *factory, ossimOverviewBuilderFactoryBase *beforeThisFactory)
 Will insert the factory before the beforeThisFactory. More...
 
void getAllTypeNamesFromRegistry (std::vector< ossimString > &typeList) const
 Will add all object types the factories can allocate. More...
 
ossimObjectcreateObjectFromRegistry (const ossimString &typeName) const
 This is the base object return for all objects in the system. More...
 
ossimObjectcreateObjectFromRegistry (const ossimKeywordlist &kwl, const char *prefix=0) const
 This is the base object return for all objects in the system. More...
 
ossimOverviewBuilderBasecreateNativeObjectFromRegistry (const ossimString &typeName) const
 This is a helper method that calls the createObject and makes sure that the returned object is of the NativeType base type this registry supports. More...
 
ossimOverviewBuilderBasecreateNativeObjectFromRegistry (const ossimKeywordlist &kwl, const char *prefix=0) const
 This is a helper method that calls the createObject and makes sure that the returned object is of the NativeType base type this registry supports. More...
 

Static Public Member Functions

static ossimOverviewBuilderFactoryRegistryinstance ()
 instance method for access to theInstance pointer. More...
 

Private Member Functions

 ossimOverviewBuilderFactoryRegistry ()
 default constructor hidden from use More...
 
 ossimOverviewBuilderFactoryRegistry (const ossimOverviewBuilderFactoryRegistry &obj)
 copy constructor hidden from use More...
 
void operator= (const ossimOverviewBuilderFactoryRegistry &rhs)
 operator= hidden from use. More...
 

Static Private Attributes

static ossimOverviewBuilderFactoryRegistrym_instance = 0
 The static instance of this class. More...
 

Additional Inherited Members

- Public Types inherited from ossimFactoryListInterface< ossimOverviewBuilderFactoryBase, ossimOverviewBuilderBase >
typedef std::vector< ossimOverviewBuilderFactoryBase *> FactoryListType
 
typedef ossimOverviewBuilderFactoryBase FactoryType
 
typedef ossimOverviewBuilderBase NativeReturnType
 
- Protected Member Functions inherited from ossimReferenced
virtual ~ossimReferenced ()
 
- Protected Member Functions inherited from ossimFactoryListInterface< ossimOverviewBuilderFactoryBase, ossimOverviewBuilderBase >
bool findFactory (ossimOverviewBuilderFactoryBase *factory) const
 Utility to find a factory in the list. More...
 
- Protected Attributes inherited from ossimFactoryListInterface< ossimOverviewBuilderFactoryBase, ossimOverviewBuilderBase >
std::mutex m_factoryListMutex
 
FactoryListType m_factoryList
 

Detailed Description

The factory registry for overview builders.

Typical usage: std::vector<ossimString> typeList; ossimOverviewBuilderFactoryRegistry::instance()->getTypeNameList(typeList); ossimOverviewBuilderBase* builder = ossimOverviewBuilderFactoryRegistry::instance()->createBuilder( someStringFromTypeList);

Definition at line 33 of file ossimOverviewBuilderFactoryRegistry.h.

Constructor & Destructor Documentation

◆ ossimOverviewBuilderFactoryRegistry() [1/2]

ossimOverviewBuilderFactoryRegistry::ossimOverviewBuilderFactoryRegistry ( )
private

default constructor hidden from use

Definition at line 80 of file ossimOverviewBuilderFactoryRegistry.cpp.

References m_instance.

Referenced by instance().

81 {
82  m_instance = this;
83 }
static ossimOverviewBuilderFactoryRegistry * m_instance
The static instance of this class.

◆ ossimOverviewBuilderFactoryRegistry() [2/2]

ossimOverviewBuilderFactoryRegistry::ossimOverviewBuilderFactoryRegistry ( const ossimOverviewBuilderFactoryRegistry obj)
private

copy constructor hidden from use

Definition at line 85 of file ossimOverviewBuilderFactoryRegistry.cpp.

References m_instance.

87 {
88  m_instance = this;
89 }
static ossimOverviewBuilderFactoryRegistry * m_instance
The static instance of this class.

Member Function Documentation

◆ createBuilder()

ossimOverviewBuilderBase * ossimOverviewBuilderFactoryRegistry::createBuilder ( const ossimString typeName) const

Creates a builder from a string.

This should match a string from the getTypeNameList() method.

Returns
Pointer to ossimOverviewBuilderBase or NULL is not found within registered factories.

Definition at line 56 of file ossimOverviewBuilderFactoryRegistry.cpp.

References ossimFactoryListInterface< ossimOverviewBuilderFactoryBase, ossimOverviewBuilderBase >::m_factoryList.

Referenced by createObject().

58 {
59  FactoryListType::const_iterator iter = m_factoryList.begin();
60  NativeReturnType* result = 0;
61 
62  while(iter != m_factoryList.end())
63  {
64  result = (*iter)->createBuilder(typeName);
65  if (result)
66  {
67  break;
68  }
69  ++iter;
70  }
71 
72  return result;
73 }

◆ createObject() [1/2]

ossimObject * ossimOverviewBuilderFactoryRegistry::createObject ( const ossimString typeName) const
virtual

Creates an object given a type name.

Implements ossimObjectFactory.

Definition at line 29 of file ossimOverviewBuilderFactoryRegistry.cpp.

References ossimFactoryListInterface< ossimOverviewBuilderFactoryBase, ossimOverviewBuilderBase >::createObjectFromRegistry().

30 {
31  return createObjectFromRegistry(typeName);
32 }
ossimObject * createObjectFromRegistry(const ossimString &typeName) const
This is the base object return for all objects in the system.

◆ createObject() [2/2]

ossimObject * ossimOverviewBuilderFactoryRegistry::createObject ( const ossimKeywordlist kwl,
const char *  prefix = 0 
) const
virtual

Creates and object given a keyword list.

Implements ossimObjectFactory.

Definition at line 34 of file ossimOverviewBuilderFactoryRegistry.cpp.

References createBuilder(), ossimString::empty(), ossimKeywordlist::find(), ossimSource::loadState(), ossimRefPtr< T >::release(), and ossimRefPtr< T >::valid().

36 {
38 
39  ossimString type = kwl.find(prefix, "type");
40  if(!type.empty())
41  {
42  result = createBuilder(type);
43  if(result.valid())
44  {
45  if(!result->loadState(kwl, prefix))
46  {
47  result = 0;
48  }
49  }
50  }
51 
52  return result.release();
53 }
bool valid() const
Definition: ossimRefPtr.h:75
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
Definition: ossimSource.cpp:66
const char * find(const char *key) const
T * release()
Definition: ossimRefPtr.h:93
bool empty() const
Definition: ossimString.h:411
ossimOverviewBuilderBase * createBuilder(const ossimString &typeName) const
Creates a builder from a string.

◆ getTypeNameList()

void ossimOverviewBuilderFactoryRegistry::getTypeNameList ( std::vector< ossimString > &  typeList) const
virtual

Method to populate a list of supported types of all factories registered to this registry.

Example:

ossimTiffOverviewNearest ossimTiffOverviewBox

Parameters
typeListList of ossimStrings to add to.

Implements ossimObjectFactory.

Definition at line 75 of file ossimOverviewBuilderFactoryRegistry.cpp.

References ossimFactoryListInterface< ossimOverviewBuilderFactoryBase, ossimOverviewBuilderBase >::getAllTypeNamesFromRegistry().

Referenced by ossimImageUtil::outputOverviewWriterTypes(), and ossimInfo::printOverviewTypes().

76 {
78 }
void getAllTypeNamesFromRegistry(std::vector< ossimString > &typeList) const
Will add all object types the factories can allocate.

◆ instance()

ossimOverviewBuilderFactoryRegistry * ossimOverviewBuilderFactoryRegistry::instance ( )
static

instance method for access to theInstance pointer.

Returns
Pointer to this class.

Definition at line 19 of file ossimOverviewBuilderFactoryRegistry.cpp.

References ossimObjectFactoryRegistry::instance(), m_instance, ossimOverviewBuilderFactoryRegistry(), and ossimFactoryListInterface< T, NativeType >::registerFactory().

Referenced by ossimInit::initializeDefaultFactories(), ossimSharedLibraryFinalize(), ossimSharedLibraryInitialize(), ossimImageUtil::outputOverviewWriterTypes(), and ossimInfo::printOverviewTypes().

20 {
21  if ( m_instance == 0 )
22  {
25  }
26  return m_instance;
27 }
static ossimOverviewBuilderFactoryRegistry * m_instance
The static instance of this class.
static ossimObjectFactoryRegistry * instance()
ossimOverviewBuilderFactoryRegistry()
default constructor hidden from use
void registerFactory(T *factory, bool pushToFrontFlag=false)
Will register a factory to the factory list.

◆ operator=()

void ossimOverviewBuilderFactoryRegistry::operator= ( const ossimOverviewBuilderFactoryRegistry rhs)
private

operator= hidden from use.

Definition at line 91 of file ossimOverviewBuilderFactoryRegistry.cpp.

93 {
94 
95 }

Member Data Documentation

◆ m_instance

ossimOverviewBuilderFactoryRegistry * ossimOverviewBuilderFactoryRegistry::m_instance = 0
staticprivate

The static instance of this class.

Definition at line 87 of file ossimOverviewBuilderFactoryRegistry.h.

Referenced by instance(), and ossimOverviewBuilderFactoryRegistry().


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