00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef FILEDATAREADER_H
00013 #define FILEDATAREADER_H
00014
00015
00016 #include "filedata.h"
00017 #include <cmath>
00018 #include <cfloat>
00019 #include "hdfi.h"
00020 #include <string>
00021
00025 class FileDataReader : virtual public FileData{
00026 public:
00027 FileDataReader(const string &name, const string &mode);
00028
00029 virtual ~FileDataReader();
00030
00031 virtual int get_n_dataset()=0;
00032
00033 virtual string get_dataset_name(int i)=0;
00034
00035 virtual int get_dataset_data_type(string sds_name)=0;
00036
00037 virtual string get_values_attr_dataset(string sds_name,string attr)=0;
00038
00039 virtual bool has_attr_dataset(string sds_name,string attr)=0;
00040
00041 virtual string get_values_attr(string attr_name){return "";};
00042
00043 virtual string get_file_attr(string attr_name){return get_values_attr(attr_name);};
00044
00045 virtual bool has_attr(string attr_name){return false;};
00046
00047 virtual bool has_file_attr(string attr_name){return has_attr(attr_name);};
00048
00049 bool has_sds(const string &sds_name);
00050
00051 virtual string get_product(){
00052 UnimplementedMethod e(__FILE__,__LINE__,__PRETTY_FUNCTION__);
00053 throw e;
00054 };
00055
00056 virtual void get_scaling(const string &sds_name, float64 &scale, float64 &offset)
00057 {
00058 UnimplementedMethod e(__FILE__,__LINE__,__PRETTY_FUNCTION__);
00059 throw e;
00060 };
00061
00062 void get_calibration(const string &sds_name, float64 &scale, float64 &offset) {
00063 get_scaling(sds_name, scale, offset);
00064 };
00065 };
00066
00067 #endif