#ifndef CALCACHE_H_
#define CALCACHE_H_
#include <plotms/Data/PlotMSCacheBase.h>
#include <plotms/PlotMS/PlotMSAveraging.h>
#include <plotms/PlotMS/PlotMSConstants.h>
#include <plotms/PlotMS/PlotMSFlagging.h>
#include <synthesis/CalTables/NewCalTable.h>
#include <synthesis/CalTables/CTIter.h>
#include <synthesis/CalTables/SolvableVJMCol.h>
#include <synthesis/CalTables/CalDescColumns.h>
#include <synthesis/CalTables/BJonesMCol.h>
#include <synthesis/CalTables/GJonesMCol.h>
#include <synthesis/MeasurementComponents/MSMetaInfoForCal.h>
#include <casa/aips.h>
#include <casa/Arrays.h>
#include <casa/Containers/Block.h>
namespace casa {
class PlotMSApp;
class PlotMSIndexer;
class CalCache : public PlotMSCacheBase {
friend class PlotMSIndexer;
public:
CalCache(PlotMSApp* parent);
virtual ~CalCache();
PlotMSCacheBase::Type cacheType() const { return PlotMSCacheBase::CAL; };
inline casacore::Bool parsAreComplex() { return parsAreComplex_; };
virtual casacore::String polname(casacore::Int ipol);
void setFilename(casacore::String filename);
protected:
virtual void loadIt(std::vector<PMS::Axis>& loadAxes,
std::vector<PMS::DataColumn>& loadData,
ThreadCommunication* thread = nullptr);
private:
CalCache(const CalCache&);
void setMSName(casacore::String msname);