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 TIMELEVELDATASLICEFETCHER_H_
00025 #define TIMELEVELDATASLICEFETCHER_H_
00026
00027 #include <boost/shared_ptr.hpp>
00028 #include "fimex/CDMReader.h"
00029 #include "fimex/Data.h"
00030 #include "fimex/Logger.h"
00031
00032 namespace MetNoFimex
00033 {
00034
00038 class TimeLevelDataSliceFetcher
00039 {
00040 boost::shared_ptr<CDMReader> cdmReader;
00041 const std::string& varName;
00042 std::vector<size_t> orgShape;
00043 int timePos;
00044 int levelPos;
00045 int unLimPos;
00046 boost::shared_ptr<Data> dataCache;
00047 size_t dataCachePos;
00048 LoggerPtr logger;
00049 public:
00055 TimeLevelDataSliceFetcher(boost::shared_ptr<CDMReader> cdmReader, const std::string& varName);
00056 virtual ~TimeLevelDataSliceFetcher();
00063 boost::shared_ptr<Data> getTimeLevelSlice(size_t time, size_t level) throw(CDMException);
00064 };
00065
00066 }
00067
00068 #endif