OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimImageHandlerRegistry.h
Go to the documentation of this file.
1 //*******************************************************************
2 //
3 // License: See top level LICENSE.txt file.
4 //
5 // Author: Garrett Potts
6 //
7 // Description: Contains class definition for the class
8 // ImageHandlerRegistry.
9 //
10 //*******************************************************************
11 // $Id: ossimImageHandlerRegistry.h 22636 2014-02-23 17:55:50Z dburken $
12 
13 #ifndef ossimImageHandlerRegistry_HEADER
14 #define ossimImageHandlerRegistry_HEADER 1
15 
17 #include <ossim/base/ossimRtti.h>
20 #include <iosfwd>
21 #include <vector>
22 #include <memory>
23 #include <ossim/base/ItemCache.h>
25 
26 class ossimImageHandler;
27 class ossimFilename;
28 class ossimKeywordlist;
29 
42  public ossimFactoryListInterface<ossimImageHandlerFactoryBase, ossimImageHandler>
43 {
44 public:
45  virtual ~ossimImageHandlerRegistry();
46 
47  static ossimImageHandlerRegistry* instance();
48 
49 
50  std::shared_ptr<ossim::ImageHandlerState> getState(const ossimString& connectionString, ossim_uint32 entry)const;
51  std::shared_ptr<ossim::ImageHandlerState> getState(const ossimString& id)const;
52 
53  ossimRefPtr<ossimImageHandler> openConnection(
54  const ossimString& connectionString, bool openOverview=true )const;
55 
65  virtual ossimImageHandler* open(const ossimFilename& fileName,
66  bool trySuffixFirst=true,
67  bool openOverview=true)const;
68 
73  virtual ossimImageHandler* open(const ossimKeywordlist& kwl,
74  const char* prefix=0)const;
75 
76  virtual ossimRefPtr<ossimImageHandler> open(std::shared_ptr<ossim::ImageHandlerState> state)const;
84  virtual ossimRefPtr<ossimImageHandler> open(
85  std::shared_ptr<ossim::istream>& str,
86  const std::string& connectionString,
87  bool openOverview ) const;
88 
89 #if 0
90 
105  virtual ossimRefPtr<ossimImageHandler> open(
106  ossim::istream* str,
107  std::streamoff restartPosition,
108  bool youOwnIt ) const;
109 #endif
110 
120  virtual ossimRefPtr<ossimImageHandler> openOverview(
121  const ossimFilename& file ) const;
122 
126  virtual ossimObject* createObject(const ossimString& typeName) const;
127 
131  virtual ossimObject* createObject(const ossimKeywordlist& kwl,
132  const char* prefix=0)const;
133 
142  virtual ossimRefPtr<ossimImageHandler> openBySuffix(const ossimFilename& file,
143  bool openOverview=true)const;
144 
150  virtual void getImageHandlersBySuffix(ossimImageHandlerFactoryBase::ImageHandlerList& result,
151  const ossimString& ext)const;
157  virtual void getImageHandlersByMimeType(ossimImageHandlerFactoryBase::ImageHandlerList& result,
158  const ossimString& mimeType)const;
159 
165  virtual void getTypeNameList( std::vector<ossimString>& typeList ) const;
166 
167  virtual void getSupportedExtensions(
169 
175  std::ostream& printReaderProps(std::ostream& out) const;
176 
177 protected:
182 
183  void initializeStateCache()const;
184 
185  void addToStateCache(ossimImageHandler* handler)const;
186 
187  mutable std::shared_ptr<ossim::ItemCache<ossim::ImageHandlerState> > m_stateCache;
188 
189  //static ossimImageHandlerRegistry* theInstance;
190 
191 TYPE_DATA
192 };
193 
194 extern "C"
195 {
197 }
198 
199 #endif /* #ifndef ossimImageHandlerRegistry_HEADER */
#define OSSIMDLLEXPORT
Represents serializable keyword/value map.
virtual void getTypeNameList(std::vector< ossimString > &typeList) const =0
The is a factory list interface that allows registries to be accessed in a common way...
OSSIM_DLL void * ossimImageHandlerRegistryGetInstance()
ossimImageHandlerRegistry supports the new state cache.
#define TYPE_DATA
Definition: ossimRtti.h:339
unsigned int ossim_uint32
std::shared_ptr< ossim::ItemCache< ossim::ImageHandlerState > > m_stateCache
ossimObject * createObject(const ossimString &objectType)
Definition: kwl.cpp:64
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...
ossimReferenced & operator=(const ossimReferenced &)
#define OSSIM_DLL
std::vector< ossimRefPtr< ossimImageHandler > > ImageHandlerList
std::basic_ostream< char > ostream
Base class for char output streams.
Definition: ossimIosFwd.h:23