OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimImageHandlerFactoryBase.h
Go to the documentation of this file.
1 //*******************************************************************
2 //
3 // License: MIT
4 //
5 // Author: Garrett Potts
6 //
7 //*******************************************************************
8 // $Id$
9 
10 #ifndef ossimImageHandlerFactoryBase_HEADER
11 #define ossimImageHandlerFactoryBase_HEADER 1
12 
13 #include <ossim/base/ossimString.h>
14 #include <ossim/base/ossimRefPtr.h>
18 #include <ossim/base/ossimIosFwd.h>
19 #include <algorithm>
20 #include <iosfwd>
21 #include <memory>
22 #include <vector>
23 
24 class ossimFilename;
25 class ossimKeywordlist;
26 
28 {
29 public:
30  template <class T> class UniqueList
31  {
32  public:
33 
34  void push_back(const T& value)
35  {
36  if(std::find(theList.begin(),theList.end(), value) == theList.end())
37  {
38  theList.push_back(value);
39  }
40  }
41 
42  const std::vector<T>& getList()const
43  {
44  return theList;
45  }
47  {
48  return theList.size();
49  }
50  const T& operator[](ossim_uint32 idx)const
51  {
52  return theList[idx];
53  }
55  {
56  return theList[idx];
57  }
58  protected:
59  std::vector<T> theList;
60  };
61 
63  typedef std::vector<ossimRefPtr<ossimImageHandler> > ImageHandlerList;
64 
65  virtual ossimImageHandler* open(const ossimFilename& fileName,
66  bool openOverview=true)const = 0;
67  virtual ossimImageHandler* open(const ossimKeywordlist& kwl,
68  const char* prefix=0)const = 0;
69 #if 0
70 
86  std::streamoff restartPosition,
87  bool youOwnIt ) const;
88 #endif
89 
100  virtual ossimRefPtr<ossimImageHandler> open(
101  std::shared_ptr<ossim::istream>& str,
102  const std::string& connectionString,
103  bool openOverview=true ) const;
104 
105 
106  virtual ossimRefPtr<ossimImageHandler> open(std::shared_ptr<ossim::ImageHandlerState> state)const;
107 
108 
119  virtual ossimRefPtr<ossimImageHandler> openOverview(
120  const ossimFilename& file ) const;
121 
131  virtual ossimRefPtr<ossimImageHandler> openOverview(
132  std::shared_ptr<ossim::istream>& str,
133  const ossimString& connectionString ) const;
134 
135 
136  virtual void getImageHandlersBySuffix(ImageHandlerList& result,
137  const ossimString& ext)const;
138 
139  virtual void getImageHandlersByMimeType(ImageHandlerList& result,
140  const ossimString& mimeType)const;
141 
142  virtual void getSupportedExtensions(ossimImageHandlerFactoryBase::UniqueStringList& extensionList)const=0;
143 
144 TYPE_DATA
145 };
146 
147 #endif
Represents serializable keyword/value map.
UniqueList< ossimString > UniqueStringList
#define TYPE_DATA
Definition: ossimRtti.h:339
unsigned int ossim_uint32
std::basic_istream< char > istream
Base class for char input streams.
Definition: ossimIosFwd.h:20
This class defines an abstract Handler which all image handlers(loaders) should derive from...
#define OSSIM_DLL
std::vector< ossimRefPtr< ossimImageHandler > > ImageHandlerList