OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimHdf5Info.h
Go to the documentation of this file.
1 //----------------------------------------------------------------------------
2 //
3 // License: MIT
4 //
5 // See LICENSE.txt file in the top level directory for more details.
6 //
7 // Author: David Burken
8 //
9 // Description: HDF5 Info class.
10 //
11 //----------------------------------------------------------------------------
12 // $Id$
13 
14 #ifndef ossimH5Info_HEADER
15 #define ossimH5Info_HEADER 1
16 
22 #include <ossim/base/ossimRefPtr.h>
23 #include <ossim/hdf5/ossimHdf5.h>
24 #include <H5Cpp.h>
25 
26 class ossimEndian;
27 
34 {
35 public:
36 
38  ossimHdf5Info();
39 
41  ossimHdf5Info(ossimHdf5* hdf5);
42 
44  virtual ~ossimHdf5Info();
45 
50  virtual bool open(const ossimFilename& file);
51 
56  virtual std::ostream& print(std::ostream& out) const;
57 
58  virtual bool getKeywordlist(ossimKeywordlist& kwl) const;
59  virtual bool getKeywordlistDataset(ossimKeywordlist& kwl, const std::string& datasetName) const;
60  virtual bool getKeywordlistGroup(ossimKeywordlist& kwl, const std::string& groupName) const;
61 
62  // Methods for printing collections. These are public to enable dumping debug information:
63  std::ostream& printSubGroups (std::ostream& out, const H5::Group& obj, const ossimString& lm=ossimString()) const;
64  std::ostream& printAttributes(std::ostream& out, const H5::H5Object& obj, const ossimString& lm=ossimString()) const;
65  std::ostream& printDatasets (std::ostream& out, const H5::Group& obj, const ossimString& lm=ossimString()) const;
66 
67  // Methods for printing individual objects:
68  std::ostream& print(std::ostream& out, const H5::Group& obj, const ossimString& lm=ossimString()) const;
69  std::ostream& print(std::ostream& out, const H5::DataSet& obj, const ossimString& lm=ossimString()) const;
70  std::ostream& print(std::ostream& out, const H5::DataType& obj, const ossimString& lm=ossimString()) const;
71  std::ostream& print(std::ostream& out, const H5::DataSpace& obj, const ossimString& lm=ossimString()) const;
72  std::ostream& print(std::ostream& out, const H5::Attribute& obj, const ossimString& lm=ossimString()) const;
73 
74 
75 private:
76  void dumpGroup(const H5::Group& group,
77  const std::string& prefix,
78  ossim_uint32& recursedCount) const;
79 
80  void dumpDataset(const H5::DataSet& dataset, const std::string& prefix) const;
81 
82  void dumpCompound(const H5::DataSet& dataset,
83  const H5::CompType& compound,
84  const std::string& prefix)const;
85  void dumpCompoundTypeInfo(const H5::CompType& compound,
86  const std::string& prefix) const;
87  void dumpEnumTypeInfo(H5::EnumType datatype, const std::string& prefix) const;
88  void dumpArrayTypeInfo(H5::ArrayType datatype, const std::string& prefix) const;
89  void dumpNumericalTypeInfo(const H5::DataSet& dataset,
90  ossimByteOrder order,
91  const std::string& prefix) const;
92  void dumpIntType( const H5::IntType& dataType,
93  const char* dataPtr,
94  const std::string& prefix)const;
95  void dumpFloatType(const H5::FloatType& dataType,
96  const char* dataPtr,
97  const std::string& prefix)const;
98  void dumpStringType(const H5::StrType& dataType,
99  const char* dataPtr,
100  const std::string& prefix)const;
101  void dumpArrayType( H5::ArrayType& dataType,
102  const char* dataPtr,
103  const std::string& prefix)const;
104  void dumpNumerical(const H5::DataSet& dataset,
105  const char* dataPtr,
106  const std::string& prefix) const;
107 
108  void dumpStr(const H5::DataSet& dataset,
109  const H5::StrType& dataType,
110  const char* dataPtr,
111  const std::string& prefix) const;
112 
113  void dumpAttributes(const H5::H5Object& container, const std::string& prefix) const;
114  void dumpAttribute(const H5::Attribute& attr, const std::string& prefix) const;
115 
116  bool getGroupAttributeValue(const std::string& group,
117  const std::string& key,
118  std::string& value ) const;
119 
120  bool getDatasetAttributeValue(const std::string& objectName,
121  const std::string& key,
122  std::string& value ) const;
123 
124  ossimString getObjectPrefix(const ossimString& prefix, const ossimString& fullPathName) const;
125 
128  mutable bool m_byteOrder;
129 };
130 
131 #endif
virtual bool open(const ossimFilename &file)
open method.
virtual bool getKeywordlist(ossimKeywordlist &kwl) const
Method to dump info to a keyword list.
Represents serializable keyword/value map.
bool getDatasetAttributeValue(H5::H5File *file, const std::string &objectName, const std::string &key, std::string &value)
Gets string value for attribute key.
unsigned int ossim_uint32
Info Base.
Definition: ossimInfoBase.h:32
ossimByteOrder
ossimKeywordlist m_kwl
Low-level OSSIM interface to HDF5 libraries.
Definition: ossimHdf5.h:27
TIFF info class.
Definition: ossimHdf5Info.h:33
bool getGroupAttributeValue(H5::H5File *file, const std::string &group, const std::string &key, std::string &value)
Gets string value for attribute key.
#define OSSIM_DLL
virtual std::ostream & print(std::ostream &out) const =0
Print method.
ossimRefPtr< ossimHdf5 > m_hdf5
std::basic_ostream< char > ostream
Base class for char output streams.
Definition: ossimIosFwd.h:23