File indexing completed on 2024-06-16 03:42:51

0001 /*
0002     File                 : SpiceFilterPrivate.h
0003     Project              : LabPlot
0004     Description          : Private of Spice Filter
0005     --------------------------------------------------------------------
0006     SPDX-FileCopyrightText: 2022 Martin Marmsoler <martin.marmsoler@gmail.com>
0007 
0008     SPDX-License-Identifier: GPL-2.0-or-later
0009 */
0010 
0011 #ifndef SPICEFILTERPRIVATE_H
0012 #define SPICEFILTERPRIVATE_H
0013 
0014 #include "AbstractFileFilter.h"
0015 #include <QStringList>
0016 
0017 class AbstractDataSource;
0018 class SpiceFileReader;
0019 class SpiceFilter;
0020 
0021 class SpiceFilterPrivate {
0022 public:
0023     explicit SpiceFilterPrivate(SpiceFilter*);
0024 
0025     QVector<QStringList> preview(const QString& fileName, int lines);
0026     void readDataFromFile(const QString& fileName, AbstractDataSource* = nullptr, AbstractFileFilter::ImportMode = AbstractFileFilter::ImportMode::Replace);
0027     void write(const QString& fileName, AbstractDataSource*);
0028     void generateVectorNamesColumnModes(const SpiceFileReader& reader);
0029 
0030     const SpiceFilter* q;
0031 
0032     QStringList vectorNames;
0033     QVector<AbstractColumn::ColumnMode> columnModes;
0034     int startRow{1};
0035     int endRow{-1};
0036 
0037 private:
0038     std::vector<void*> m_dataContainer; // pointers to the actual data containers
0039 };
0040 
0041 #endif // SPICEFILTERPRIVATE_H