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 <vector>
00029 #include "fimex/Logger.h"
00030 #include "fimex/CDMException.h"
00031
00032 namespace MetNoFimex
00033 {
00034
00035 class Data;
00036 class CDMReader;
00037
00038
00042 class TimeLevelDataSliceFetcher
00043 {
00044 boost::shared_ptr<CDMReader> cdmReader;
00045 const std::string& varName;
00046 std::vector<size_t> orgShape;
00047 int timePos;
00048 int levelPos;
00049 int unLimPos;
00050 boost::shared_ptr<Data> dataCache;
00051 size_t dataCachePos;
00052 LoggerPtr logger;
00053 public:
00059 TimeLevelDataSliceFetcher(boost::shared_ptr<CDMReader> cdmReader, const std::string& varName);
00060 virtual ~TimeLevelDataSliceFetcher();
00067 boost::shared_ptr<Data> getTimeLevelSlice(size_t time, size_t level) throw(CDMException);
00068 };
00069
00070 }
00071
00072 #endif