std::pair<CacheAccessStatus, const casacore::MDirection *> getPointingDirection (int antenna, double time);
#ifndef MSVIS_MSVIS_POINTINGDIRECTIONCACHE_H_
#define MSVIS_MSVIS_POINTINGDIRECTIONCACHE_H_
#include <casacore/measures/Measures/MDirection.h>
class PointingDirectionCache;
enum class CacheAccessStatus : int {
bool timeMatch (double time, double rowsTime, double rowsInterval);
TimeLevelEntry () = delete;
TimeLevelEntry (const Pointing &, const TimeLevelCache *);
TimeLevelEntry (const TimeLevelEntry &);
TimeLevelEntry& operator= (const TimeLevelEntry & other);
const casacore::MDirection * getDirection () const;
double getInterval () const;
mutable std::unique_ptr<casacore::MDirection> direction_p;
const TimeLevelCache * timeLevelCache_p;
const PointingSource * getPointingSource () const;
bool operator== (double t, const TimeLevelEntry &);
bool operator== (const TimeLevelEntry &, double t);
bool operator< (double t, const TimeLevelEntry &);
bool operator< (const TimeLevelEntry &, double t);
TimeLevelCache (int minTimes, int maxTimes, const AntennaLevelCache * );
void addEntry (Pointing & pointing);
std::pair<CacheAccessStatus, const casacore::MDirection *> getPointingDirection (double time);
const PointingSource * getPointingSource () const;
typedef std::vector<TimeLevelEntry> Cache;
const AntennaLevelCache * antennaLevelCache_p;