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

#include <ossimImageMetaDataWriterFactory.h>

Inheritance diagram for ossimImageMetaDataWriterFactory:
ossimImageMetaDataWriterFactoryBase ossimObjectFactory ossimObject ossimReferenced

Public Member Functions

 ~ossimImageMetaDataWriterFactory ()
 
virtual ossimObjectcreateObject (const ossimString &typeName) const
 
virtual ossimObjectcreateObject (const ossimKeywordlist &kwl, const char *prefix=0) const
 
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
 Satisfies pure virtual from ossimImageMetaDataWriterFactoryBase. 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 ossimImageMetaDataWriterFactoryinstance ()
 

Protected Member Functions

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

Static Protected Attributes

static ossimImageMetaDataWriterFactorytheInstance = NULL
 

Detailed Description

Definition at line 21 of file ossimImageMetaDataWriterFactory.h.

Constructor & Destructor Documentation

◆ ~ossimImageMetaDataWriterFactory()

ossimImageMetaDataWriterFactory::~ossimImageMetaDataWriterFactory ( )

Definition at line 33 of file ossimImageMetaDataWriterFactory.cpp.

References theInstance.

34 {
35  theInstance = NULL;
36 }
static ossimImageMetaDataWriterFactory * theInstance

◆ ossimImageMetaDataWriterFactory() [1/2]

ossimImageMetaDataWriterFactory::ossimImageMetaDataWriterFactory ( )
protected

Definition at line 28 of file ossimImageMetaDataWriterFactory.cpp.

References theInstance.

Referenced by instance().

29 {
30  theInstance = this;
31 }
static ossimImageMetaDataWriterFactory * theInstance

◆ ossimImageMetaDataWriterFactory() [2/2]

ossimImageMetaDataWriterFactory::ossimImageMetaDataWriterFactory ( const ossimImageMetaDataWriterFactory rhs)
protected

Definition at line 205 of file ossimImageMetaDataWriterFactory.cpp.

207 {
208 }

Member Function Documentation

◆ createObject() [1/2]

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

Creates an object given a type name.

Implements ossimObjectFactory.

Definition at line 48 of file ossimImageMetaDataWriterFactory.cpp.

References STATIC_TYPE_NAME.

Referenced by createObject().

50 {
51  // Use the type name to instantiate the class.
52  ossimObject* result = (ossimObject*)NULL;
53 
55  {
56  result = new ossimEnviHeaderFileWriter;
57  }
58  if(STATIC_TYPE_NAME(ossimERSFileWriter) == typeName)
59  {
60  result = new ossimERSFileWriter;
61  }
62  else if(STATIC_TYPE_NAME(ossimFgdcFileWriter) == typeName)
63  {
64  result = new ossimFgdcFileWriter;
65  }
66  else if(STATIC_TYPE_NAME(ossimGeomFileWriter) == typeName)
67  {
68  result = new ossimGeomFileWriter;
69  }
70  else if(STATIC_TYPE_NAME(ossimReadmeFileWriter) == typeName)
71  {
72  result = new ossimReadmeFileWriter;
73  }
74  //---
75  // Special case for backwards compatibility. ossimJpegWorldFileWriter and
76  // ossimTiffWorldFileWriter same; hence, moved to ossimWorldFileWriter.
77  //---
78  else if( (STATIC_TYPE_NAME(ossimWorldFileWriter) == typeName) ||
79  (ossimString("ossimJpegWorldFileWriter") == typeName) ||
80  (ossimString("ossimTiffWorldFileWriter") == typeName) )
81  {
82  result = new ossimWorldFileWriter;
83  }
84 
85  return result;
86 }
Class to write out meta data in a Federal Geographic Data Committe (FGDC) format. ...
ossimWorldFileWriter
#define STATIC_TYPE_NAME(T)
Definition: ossimRtti.h:325
Class for writing a "ERS" style header.
ossimReadmeFileWriter
Class for writing a "ENVI" style header.
ossimGeomFileWriter

◆ createObject() [2/2]

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

Creates and object given a keyword list.

Implements ossimObjectFactory.

Definition at line 88 of file ossimImageMetaDataWriterFactory.cpp.

References createObject(), ossimKeywordlist::find(), ossimObject::loadState(), and ossimKeywordNames::TYPE_KW.

90 {
91  //---
92  // Check the type keyword found in kwl. Use the create by class name
93  // above and then call load state.
94  //---
95  ossimObject* result = (ossimObject*)NULL;
96 
97  const char* type = kwl.find(prefix, ossimKeywordNames::TYPE_KW);
98 
99  if(type)
100  {
101  result = createObject(ossimString(type));
102  if(result)
103  {
104  result->loadState(kwl, prefix);
105  }
106  }
107 
108  return result;
109 }
const char * find(const char *key) const
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
static const char * TYPE_KW
virtual ossimObject * createObject(const ossimString &typeName) const

◆ createWriter()

ossimRefPtr< ossimMetadataFileWriter > ossimImageMetaDataWriterFactory::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 112 of file ossimImageMetaDataWriterFactory.cpp.

References ossimObject::getClassName(), and ossimMetadataFileWriter::hasMetadataType().

113 {
115 
116  writer = new ossimEnviHeaderFileWriter;
117  if ( (writer->getClassName() == type) ||
118  (writer->hasMetadataType(type)) )
119  {
120  return writer;
121  }
122 
123  writer = new ossimERSFileWriter;
124  if ( (writer->getClassName() == type) ||
125  (writer->hasMetadataType(type)) )
126  {
127  return writer;
128  }
129 
130  writer = new ossimFgdcFileWriter;
131  if ( (writer->getClassName() == type) ||
132  (writer->hasMetadataType(type)) )
133  {
134  return writer;
135  }
136 
137  writer = new ossimGeomFileWriter;
138  if ( (writer->getClassName() == type) ||
139  (writer->hasMetadataType(type)) )
140  {
141  return writer;
142  }
143 
144  writer = new ossimReadmeFileWriter;
145  if ( (writer->getClassName() == type) ||
146  (writer->hasMetadataType(type)) )
147  {
148  return writer;
149  }
150 
151  //---
152  // Special case for backwards compatibility. ossimJpegWorldFileWriter and
153  // ossimTiffWorldFileWriter same; hence, moved to ossimWorldFileWriter.
154  //---
155  writer = new ossimWorldFileWriter;
156  if ( (writer->getClassName() == type) ||
157  (writer->hasMetadataType(type)) ||
158  (ossimString("ossimJpegWorldFileWriter") == type) ||
159  (ossimString("ossimTiffWorldFileWriter") == type) )
160  {
161  return writer;
162  }
163 
164  // Not in factory.
165  writer = NULL;
166  return writer;
167 }
Class to write out meta data in a Federal Geographic Data Committe (FGDC) format. ...
ossimWorldFileWriter
virtual ossimString getClassName() const
Definition: ossimObject.cpp:64
Class for writing a "ERS" style header.
ossimReadmeFileWriter
virtual bool hasMetadataType(const ossimString &metadataType) const =0
bool hasMetadataType(const ossimString& metadataType) const
Class for writing a "ENVI" style header.
ossimGeomFileWriter

◆ getMetadatatypeList()

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

Satisfies pure virtual from ossimImageMetaDataWriterFactoryBase.

Appends the meta data writers types from each of the supported meta data writers in this factor to the "metadatatypeList".

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

Parameters
metadatatypeListstl::vector<ossimString> List to append to.

Implements ossimImageMetaDataWriterFactoryBase.

Definition at line 181 of file ossimImageMetaDataWriterFactory.cpp.

References ossimMetadataFileWriter::getMetadatatypeList().

183 {
185 
186  writer = new ossimEnviHeaderFileWriter;
187  writer->getMetadatatypeList(metadatatypeList);
188 
189  writer = new ossimERSFileWriter;
190  writer->getMetadatatypeList(metadatatypeList);
191 
192  writer = new ossimFgdcFileWriter;
193  writer->getMetadatatypeList(metadatatypeList);
194 
195  writer = new ossimGeomFileWriter;
196  writer->getMetadatatypeList(metadatatypeList);
197 
198  writer = new ossimReadmeFileWriter;
199  writer->getMetadatatypeList(metadatatypeList);
200 
201  writer = new ossimWorldFileWriter;
202  writer->getMetadatatypeList(metadatatypeList);
203 }
virtual void getMetadatatypeList(std::vector< ossimString > &metadatatypeList) const =0
void getMetadatatypeList(std::vector<ossimString>& metadatatypeList)const
Class to write out meta data in a Federal Geographic Data Committe (FGDC) format. ...
ossimWorldFileWriter
Class for writing a "ERS" style header.
ossimReadmeFileWriter
Class for writing a "ENVI" style header.
ossimGeomFileWriter

◆ getTypeNameList()

void ossimImageMetaDataWriterFactory::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 169 of file ossimImageMetaDataWriterFactory.cpp.

References STATIC_TYPE_NAME.

171 {
172  // add each object's RTTI name here
173  typeList.push_back(STATIC_TYPE_NAME(ossimEnviHeaderFileWriter));
174  typeList.push_back(STATIC_TYPE_NAME(ossimERSFileWriter));
175  typeList.push_back(STATIC_TYPE_NAME(ossimFgdcFileWriter));
176  typeList.push_back(STATIC_TYPE_NAME(ossimGeomFileWriter));
177  typeList.push_back(STATIC_TYPE_NAME(ossimReadmeFileWriter));
178  typeList.push_back(STATIC_TYPE_NAME(ossimWorldFileWriter));
179 }
Class to write out meta data in a Federal Geographic Data Committe (FGDC) format. ...
ossimWorldFileWriter
#define STATIC_TYPE_NAME(T)
Definition: ossimRtti.h:325
Class for writing a "ERS" style header.
ossimReadmeFileWriter
Class for writing a "ENVI" style header.
ossimGeomFileWriter

◆ instance()

ossimImageMetaDataWriterFactory * ossimImageMetaDataWriterFactory::instance ( )
static

◆ operator=()

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

Definition at line 211 of file ossimImageMetaDataWriterFactory.cpp.

213 {
214  return *this;
215 }

Member Data Documentation

◆ theInstance

ossimImageMetaDataWriterFactory * ossimImageMetaDataWriterFactory::theInstance = NULL
staticprotected

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