OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimImageHandlerMtAdaptor.h
Go to the documentation of this file.
1 //**************************************************************************************************
2 // OSSIM -- Open Source Software Image Map
3 //
4 // LICENSE: See top level LICENSE.txt file.
5 //
6 // AUTHOR: Oscar Kramer
7 //
8 //**************************************************************************************************
9 // $Id$
10 #ifndef ossimImageHandlerMtAdaptor_HEADER
11 #define ossimImageHandlerMtAdaptor_HEADER 1
12 
15 #include <mutex>
16 //**************************************************************************************************
19 //**************************************************************************************************
21 {
22 public:
23  static const char* ADAPTEE_ID_KW;
24 
25  ossimImageHandlerMtAdaptor(ossimImageHandler* adaptee = 0, bool use_cache=false, ossim_uint32 cache_tile_size=64);
26 
28  void setAdaptee(ossimImageHandler* handler);
29 
31  virtual bool canConnectMyInputTo(ossim_int32 i, const ossimConnectableObject* obj) const;
32 
35  virtual ossimRefPtr<ossimImageData> getTile(const ossimIpt& origin, ossim_uint32 resLevel=0);
36 
39  virtual ossimRefPtr<ossimImageData> getTile(const ossimIrect& rect, ossim_uint32 resLevel=0);
40 
43  virtual bool getTile(ossimImageData* result, ossim_uint32 resLevel=0);
44 
47  virtual bool saveState(ossimKeywordlist& kwl, const char* prefix=0)const;
48 
51  virtual bool loadState(const ossimKeywordlist& kwl, const char* prefix=0);
52 
53  // The following are virtuals in the base class. Implemented here as pass-through to adaptee
54  virtual ossim_uint32 getNumberOfInputBands() const;
55  virtual bool isOpen() const;
56  virtual bool open();
57  virtual ossim_uint32 getNumberOfLines(ossim_uint32 resLevel = 0) const;
58  virtual ossim_uint32 getNumberOfSamples(ossim_uint32 resLevel = 0) const;
59  virtual ossim_uint32 getImageTileWidth() const;
60  virtual ossim_uint32 getImageTileHeight() const;
61  virtual ossimString getLongName() const;
62  virtual ossimString getShortName() const;
63  virtual void close();
64  virtual ossim_uint32 getNumberOfOutputBands() const;
66  virtual ossimScalarType getOutputScalarType() const;
67  virtual ossim_uint32 getTileWidth() const;
68  virtual ossim_uint32 getTileHeight() const;
69  virtual ossim_float64 getMinPixelValue(ossim_uint32 band=0)const;
70  virtual ossim_float64 getMaxPixelValue(ossim_uint32 band=0)const;
71  virtual ossim_float64 getNullPixelValue(ossim_uint32 band=0)const;
72  void setCacheTileSize(ossim_uint32 cache_tile_size);
73  void setUseCache(bool use_cache);
74  void writeTime() const;
75 
76  double d_getTileT;
78 
79 protected:
81  virtual ~ossimImageHandlerMtAdaptor();
82 
85  mutable std::mutex m_mutex;
86 
87  bool d_useCache;
90  friend class ossimMtDebug;
91 
93 };
94 
95 #endif
96 
97 
98 
99 
100 
101 
102 
103 
104 
virtual bool open()=0
Pure virtual open.
ossimRefPtr< ossimImageHandler > m_adaptedHandler
#define OSSIMDLLEXPORT
Intended mainly to provide a mechanism for mutex-locking access to a shared resource during a getTile...
Represents serializable keyword/value map.
virtual ossim_uint32 getNumberOfOutputBands() const
Returns the number of bands in a tile returned from this TileSource.
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
Method to the load (recreate) the state of an object from a keyword list.
virtual ossim_uint32 getNumberOfLines(ossim_uint32 resLevel=0) const =0
Pure virtual, derived classes must implement.
bool canConnectMyInputTo(ossim_int32 inputIndex, const ossimConnectableObject *object) const
Connection rule.
virtual ossim_uint32 getTileHeight() const
Returns the default processing tile height.
virtual ossimString getShortName() const
Definition: ossimObject.cpp:48
virtual ossim_uint32 getTileWidth() const
Returns the default processing tile width.
virtual ossim_uint32 getNumberOfDecimationLevels() const
This returns the total number of decimation levels.
virtual bool isOpen() const =0
Derived classes must implement this method to be concrete.
virtual double getMinPixelValue(ossim_uint32 band=0) const
Retuns the min pixel value.
double ossim_float64
#define TYPE_DATA
Definition: ossimRtti.h:339
virtual ossim_uint32 getImageTileHeight() const =0
Returns the tile width of the image or 0 if the image is not tiled.
unsigned int ossim_uint32
virtual ossimString getLongName() const
Definition: ossimObject.cpp:53
virtual void close()
Deletes the overview and clears the valid image vertices.
ossimScalarType
For debugging purposes. To be removed with final release:
Definition: ossimMtDebug.h:7
virtual ossim_uint32 getImageTileWidth() const =0
Returns the tile width of the image or 0 if the image is not tiled.
ossimRefPtr< ossimCacheTileSource > m_cache
virtual ossimScalarType getOutputScalarType() const
This will be used to query the output pixel type of the tile source.
This class defines an abstract Handler which all image handlers(loaders) should derive from...
virtual ossim_uint32 getNumberOfSamples(ossim_uint32 resLevel=0) const =0
Pure virtual, derived classes must implement.
virtual double getMaxPixelValue(ossim_uint32 band=0) const
Returns the max pixel of the band.
virtual ossim_uint32 getNumberOfInputBands() const =0
virtual double getNullPixelValue(ossim_uint32 band=0) const
Each band has a null pixel associated with it.
ossimRefPtr< ossimImageData > d_fauxTile
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
Method to save the state of an object to a keyword list.
int ossim_int32
virtual ossimRefPtr< ossimImageData > getTile(const ossimIpt &origin, ossim_uint32 resLevel=0)