00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef DATATYPECHANGER_H_
00025 #define DATATYPECHANGER_H_
00026 #include "fimex/CDMDataType.h"
00027 #include "boost/shared_ptr.hpp"
00028 #include "fimex/CDMException.h"
00029
00030 namespace MetNoFimex
00031 {
00032 class Data;
00033
00034
00036 class DataTypeChanger
00037 {
00038 CDMDataType oldType;
00039 CDMDataType newType;
00040 double oldFill;
00041 double newFill;
00042 double oldScale;
00043 double newScale;
00044 double oldOffset;
00045 double newOffset;
00046 public:
00051 explicit DataTypeChanger(CDMDataType oldType);
00066 explicit DataTypeChanger(CDMDataType oldType, double oldFill, double oldScale, double oldOffset, CDMDataType newType, double newFill, double newScale, double newOffset, double unitScale = 1., double unitOffset = 0.);
00067 virtual ~DataTypeChanger();
00071 boost::shared_ptr<Data> convertData(boost::shared_ptr<Data>) const throw(CDMException);
00075 CDMDataType getDataType() const;
00076
00077 };
00078
00079 }
00080
00081 #endif