OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimSqliteWriterFactory.cpp
Go to the documentation of this file.
1 //----------------------------------------------------------------------------
2 //
3 // License: See top level LICENSE.txt file
4 //
5 // Author: David Burken
6 //
7 // Description: Factory for OSSIM SQLite writer factory.
8 //----------------------------------------------------------------------------
9 // $Id$
10 
12 #include "ossimGpkgWriter.h"
14 #include <ossim/base/ossimRefPtr.h>
16 
18 
20  "ossimSqliteWriterFactory",
22 
24 {
25  theInstance = 0;
26 }
27 
29 {
30  if(!theInstance)
31  {
33  }
34  return theInstance;
35 }
36 
38  const ossimString& fileExtension)const
39 {
41  if ( (fileExtension == "gpkg") || (fileExtension == ".gpkg") )
42  {
43  writer = new ossimGpkgWriter();
44  }
45  return writer.release();
46 }
47 
50  const char *prefix)const
51 {
53  const char* type = kwl.find(prefix, ossimKeywordNames::TYPE_KW);
54  if (type)
55  {
56  writer = createWriter(ossimString(type));
57  if ( writer.valid() )
58  {
59  if (writer->loadState(kwl, prefix) == false)
60  {
61  writer = 0;
62  }
63  }
64  }
65  return writer.release();
66 }
67 
69  const ossimString& typeName)const
70 {
72  if (typeName == "ossimGpkgWriter")
73  {
74  writer = new ossimGpkgWriter();
75  }
76  else
77  {
78  // See if the type name is supported by the writer.
79  writer = new ossimGpkgWriter();
80  if ( writer->hasImageType(typeName) == false )
81  {
82  writer = 0;
83  }
84  }
85  return writer.release();
86 }
87 
89  const char *prefix)const
90 {
91  return createWriter(kwl, prefix);
92 }
93 
95  const ossimString& typeName) const
96 {
97  return createWriter(typeName);
98 }
99 
101  std::vector<ossimString>& result)const
102 {
103  result.push_back("gpkg");
104 }
105 
106 void ossimSqliteWriterFactory::getTypeNameList(std::vector<ossimString>& typeList)const
107 {
108  typeList.push_back(ossimString("ossimGpkgWriter"));
109 }
110 
111 void ossimSqliteWriterFactory::getImageTypeList(std::vector<ossimString>& imageTypeList)const
112 {
114  writer->getImageTypeList(imageTypeList);
115  writer = 0;
116 }
117 
120 {
121  ossimString testExt = ext.downcase();
122  if(testExt == "gpkg")
123  {
124  result.push_back(new ossimGpkgWriter);
125  }
126 }
127 
130 {
131  ossimString testMime = mimeType.downcase();
132  if(testMime == "image/gpkg")
133  {
134  result.push_back(new ossimGpkgWriter);
135  }
136 }
137 
139 
141 
143 
144 
145 
146 
virtual void getImageTypeList(std::vector< ossimString > &imageTypeList) const
void getImageTypeList(std::vector<ossimString>& imageTypeList)const
Represents serializable keyword/value map.
bool valid() const
Definition: ossimRefPtr.h:75
const char * find(const char *key) const
virtual ossimImageFileWriter * createWriterFromExtension(const ossimString &fileExtension) const
Creates a writer from extension like "sqlite".
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
virtual void getImageFileWritersBySuffix(ossimImageWriterFactoryBase::ImageFileWriterList &result, const ossimString &ext) const
Pure virtual base class for image file writers.
static const char * TYPE_KW
void push_back(char c)
Equivalent to insert(end(), c).
Definition: ossimString.h:905
static ossimSqliteWriterFactory * instance()
static method to return instance (the only one) of this class.
virtual ossimImageFileWriter * createWriter(const ossimKeywordlist &kwl, const char *prefix=0) const
Create that takes a keyword list and prefix.
virtual void getExtensions(std::vector< ossimString > &extList) const
Adds "sqlite" to list.
void operator=(const ossimSqliteWriterFactory &)
hidden from use copy constructor
virtual void getImageTypeList(std::vector< ossimString > &imageTypeList) const
Adds "ossim_sqlite" to writer list.
ossimSqliteWriterFactory()
hidden from use default constructor
T * release()
Definition: ossimRefPtr.h:93
static ossimString downcase(const ossimString &aString)
Definition: ossimString.cpp:48
virtual bool hasImageType(const ossimString &imageType) const
bool hasImageType(const ossimString& imageType) const
Factory for SQLITE image writer.
virtual ossimObject * createObject(const ossimKeywordlist &kwl, const char *prefix=0) const
Creates and object given a keyword list.
std::vector< ossimRefPtr< ossimImageFileWriter > > ImageFileWriterList
static ossimSqliteWriterFactory * theInstance
static instance of this class
virtual ~ossimSqliteWriterFactory()
virtual destructor
virtual void getImageFileWritersByMimeType(ossimImageWriterFactoryBase::ImageFileWriterList &result, const ossimString &mimeType) const
RTTI_DEF1(ossimSqliteWriterFactory, "ossimSqliteWriterFactory", ossimImageWriterFactoryBase)
virtual void getTypeNameList(std::vector< ossimString > &typeList) const
Adds "ossimSqliteWriter" to list.