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

#include <ossimImageMetaDataWriterRegistry.h>

Inheritance diagram for ossimImageMetaDataWriterRegistry:
ossimImageMetaDataWriterFactoryBase ossimObjectFactory ossimObject ossimReferenced

Public Member Functions

 ~ossimImageMetaDataWriterRegistry ()
 
void registerFactory (ossimImageMetaDataWriterFactoryBase *factory)
 
void unregisterFactory (ossimImageMetaDataWriterFactoryBase *factory)
 
bool findFactory (ossimImageMetaDataWriterFactoryBase *factory) const
 
virtual ossimObjectcreateObject (const ossimString &typeName) const
 Creates an object given a type name. More...
 
virtual ossimObjectcreateObject (const ossimKeywordlist &kwl, const char *prefix=0) const
 Creates and object given a keyword list. More...
 
virtual ossimRefPtr< ossimMetadataFileWritercreateWriter (const ossimString &type) const
 Creates a writer from either a class name or a string representing the meta data type like "tiff_world_file". More...
 
virtual void getTypeNameList (std::vector< ossimString > &typeList) const
 This should return the type name of all objects in all factories. More...
 
virtual void getMetadatatypeList (std::vector< ossimString > &metadatatypeList) const
 Initializes list with meta data types from all registered metadata factories. 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
 

Static Public Member Functions

static ossimImageMetaDataWriterRegistryinstance ()
 

Protected Member Functions

 ossimImageMetaDataWriterRegistry ()
 
 ossimImageMetaDataWriterRegistry (const ossimImageMetaDataWriterRegistry &rhs)
 
const ossimImageMetaDataWriterRegistryoperator= (const ossimImageMetaDataWriterRegistry &rhs)
 
- Protected Member Functions inherited from ossimImageMetaDataWriterFactoryBase
 ossimImageMetaDataWriterFactoryBase ()
 
 ossimImageMetaDataWriterFactoryBase (const ossimImageMetaDataWriterFactoryBase &)
 
const ossimImageMetaDataWriterFactoryBaseoperator= (const ossimImageMetaDataWriterFactoryBase &)
 
- Protected Member Functions inherited from ossimReferenced
virtual ~ossimReferenced ()
 

Protected Attributes

std::vector< ossimImageMetaDataWriterFactoryBase * > theFactoryList
 

Detailed Description

Definition at line 15 of file ossimImageMetaDataWriterRegistry.h.

Constructor & Destructor Documentation

◆ ~ossimImageMetaDataWriterRegistry()

ossimImageMetaDataWriterRegistry::~ossimImageMetaDataWriterRegistry ( )

Definition at line 24 of file ossimImageMetaDataWriterRegistry.cpp.

References ossimObjectFactoryRegistry::instance(), and ossimFactoryListInterface< T, NativeType >::unregisterFactory().

25 {
27 }
static ossimObjectFactoryRegistry * instance()
void unregisterFactory(T *factory)
Will remove the factory from the registry.

◆ ossimImageMetaDataWriterRegistry() [1/2]

ossimImageMetaDataWriterRegistry::ossimImageMetaDataWriterRegistry ( )
protected

Definition at line 18 of file ossimImageMetaDataWriterRegistry.cpp.

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

19 {
22 }
void registerFactory(ossimImageMetaDataWriterFactoryBase *factory)
static ossimImageMetaDataWriterFactory * instance()
static ossimObjectFactoryRegistry * instance()
void registerFactory(T *factory, bool pushToFrontFlag=false)
Will register a factory to the factory list.

◆ ossimImageMetaDataWriterRegistry() [2/2]

ossimImageMetaDataWriterRegistry::ossimImageMetaDataWriterRegistry ( const ossimImageMetaDataWriterRegistry rhs)
protected

Definition at line 153 of file ossimImageMetaDataWriterRegistry.cpp.

155 {
156 }

Member Function Documentation

◆ createObject() [1/2]

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

Creates an object given a type name.

Implements ossimObjectFactory.

Definition at line 67 of file ossimImageMetaDataWriterRegistry.cpp.

References theFactoryList.

69 {
70  ossimObject* result = NULL;
71  std::vector<ossimImageMetaDataWriterFactoryBase*>::const_iterator factory;
72 
73  factory = theFactoryList.begin();
74  while((factory != theFactoryList.end()) && !result)
75  {
76  result = (*factory)->createObject(typeName);
77  ++factory;
78  }
79 
80  return result;
81 }
std::vector< ossimImageMetaDataWriterFactoryBase * > theFactoryList

◆ createObject() [2/2]

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

Creates and object given a keyword list.

Implements ossimObjectFactory.

Definition at line 83 of file ossimImageMetaDataWriterRegistry.cpp.

References theFactoryList.

86 {
87  ossimObject* result = NULL;
88  std::vector<ossimImageMetaDataWriterFactoryBase*>::const_iterator factory;
89 
90  factory = theFactoryList.begin();
91  while((factory != theFactoryList.end()) && !result)
92  {
93  result = (*factory)->createObject(kwl, prefix);
94  ++factory;
95  }
96  return result;
97 }
std::vector< ossimImageMetaDataWriterFactoryBase * > theFactoryList

◆ createWriter()

ossimRefPtr< ossimMetadataFileWriter > ossimImageMetaDataWriterRegistry::createWriter ( const ossimString type) const
virtual

Creates a writer from either a class name or a string representing the meta data type like "tiff_world_file".

Returns
ossimRefPtr<ossimMetadataFileWriter>
Note
Return can have a null pointer if type is not found in a factory so the caller should always check the pointer like: ossimRefPtr<ossimMetadataFileWriter> mw = ossimImageMetaDataWriterRegistry::instance("ossim_readme"); if (!mw.valid()) { // not in factory }

Implements ossimImageMetaDataWriterFactoryBase.

Definition at line 100 of file ossimImageMetaDataWriterRegistry.cpp.

References theFactoryList.

101 {
103 
104  std::vector<ossimImageMetaDataWriterFactoryBase*>::const_iterator factory;
105  factory = theFactoryList.begin();
106  while((factory != theFactoryList.end()) && !result)
107  {
108  result = (*factory)->createWriter(type);
109  ++factory;
110  }
111  return result;
112 }
std::vector< ossimImageMetaDataWriterFactoryBase * > theFactoryList

◆ findFactory()

bool ossimImageMetaDataWriterRegistry::findFactory ( ossimImageMetaDataWriterFactoryBase factory) const

Definition at line 58 of file ossimImageMetaDataWriterRegistry.cpp.

References theFactoryList.

Referenced by registerFactory().

60 {
61  return (std::find(theFactoryList.begin(),
62  theFactoryList.end(),
63  factory)!=theFactoryList.end());
64 }
std::vector< ossimImageMetaDataWriterFactoryBase * > theFactoryList

◆ getMetadatatypeList()

void ossimImageMetaDataWriterRegistry::getMetadatatypeList ( std::vector< ossimString > &  metadatatypeList) const
virtual

Initializes list with meta data types from all registered metadata factories.

This is the actual image type name like: ossim_geometry envi_header tiff_world_file jpeg_world_file

Parameters
metadatatypeListstl::vector<ossimString> list to append to.
Note
Since this is the master registry for all meta data factories this method starts by clearing the metadatatypeList.

Implements ossimImageMetaDataWriterFactoryBase.

Definition at line 134 of file ossimImageMetaDataWriterRegistry.cpp.

References theFactoryList.

136 {
137  //---
138  // Since this is the master registry for all meta data writer factories
139  // we will start with a cleared list.
140  //---
141  metadatatypeList.clear();
142 
143  std::vector<ossimImageMetaDataWriterFactoryBase*>::const_iterator iter =
144  theFactoryList.begin();
145 
146  while(iter != theFactoryList.end())
147  {
148  (*iter)->getMetadatatypeList(metadatatypeList);
149  ++iter;
150  }
151 }
std::vector< ossimImageMetaDataWriterFactoryBase * > theFactoryList

◆ getTypeNameList()

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

This should return the type name of all objects in all factories.

This is the name used to construct the objects dynamially and this name must be unique.

Implements ossimObjectFactory.

Definition at line 114 of file ossimImageMetaDataWriterRegistry.cpp.

References theFactoryList.

116 {
117  std::vector<ossimString> result;
118  std::vector<ossimImageMetaDataWriterFactoryBase*>::const_iterator iter =
119  theFactoryList.begin();
120 
121  while(iter != theFactoryList.end())
122  {
123  result.clear();
124  (*iter)->getTypeNameList(result);
125 
126  // now append to the end of the typeList.
127  typeList.insert(typeList.end(),
128  result.begin(),
129  result.end());
130  ++iter;
131  }
132 }
std::vector< ossimImageMetaDataWriterFactoryBase * > theFactoryList

◆ instance()

ossimImageMetaDataWriterRegistry * ossimImageMetaDataWriterRegistry::instance ( )
static

◆ operator=()

const ossimImageMetaDataWriterRegistry & ossimImageMetaDataWriterRegistry::operator= ( const ossimImageMetaDataWriterRegistry rhs)
protected

Definition at line 159 of file ossimImageMetaDataWriterRegistry.cpp.

161 {
162  return *this;
163 }

◆ registerFactory()

void ossimImageMetaDataWriterRegistry::registerFactory ( ossimImageMetaDataWriterFactoryBase factory)

Definition at line 36 of file ossimImageMetaDataWriterRegistry.cpp.

References findFactory(), and theFactoryList.

Referenced by ossimImageMetaDataWriterRegistry().

38 {
39  if(factory&&!findFactory(factory))
40  {
41  theFactoryList.push_back(factory);
42  }
43 }
std::vector< ossimImageMetaDataWriterFactoryBase * > theFactoryList
bool findFactory(ossimImageMetaDataWriterFactoryBase *factory) const

◆ unregisterFactory()

void ossimImageMetaDataWriterRegistry::unregisterFactory ( ossimImageMetaDataWriterFactoryBase factory)

Definition at line 45 of file ossimImageMetaDataWriterRegistry.cpp.

References theFactoryList.

47 {
48  std::vector<ossimImageMetaDataWriterFactoryBase*>::iterator iter =
49  std::find(theFactoryList.begin(),
50  theFactoryList.end(),
51  factory);
52  if(iter != theFactoryList.end())
53  {
54  theFactoryList.erase(iter);
55  }
56 }
std::vector< ossimImageMetaDataWriterFactoryBase * > theFactoryList

Member Data Documentation

◆ theFactoryList

std::vector<ossimImageMetaDataWriterFactoryBase*> ossimImageMetaDataWriterRegistry::theFactoryList
protected

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