00001 #ifndef PSANA_INDEX_H
00002 #define PSANA_INDEX_H
00003
00004 #include <boost/cstdint.hpp>
00005 #include <vector>
00006
00007 #include "EventTime.h"
00008
00009 namespace psana {
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 class Index {
00024 public:
00025 typedef std::vector<EventTime>::const_iterator EventTimeIter;
00026 Index() {}
00027 virtual ~Index() {}
00028 virtual int jump(EventTime t) = 0;
00029 virtual void setrun(int run) = 0;
00030 virtual void end() = 0;
00031 virtual unsigned nsteps() = 0;
00032 virtual void times(EventTimeIter& begin, EventTimeIter& end) = 0;
00033 virtual void times(unsigned step, EventTimeIter& begin, EventTimeIter& end) = 0;
00034 virtual const std::vector<unsigned>& runs() = 0;
00035 };
00036
00037 }
00038 #endif // PSANA_INDEX_H