File indexing completed on 2024-05-26 03:51:10

0001 /*
0002     File                 : BinaryFilterPrivate.h
0003     Project              : LabPlot
0004     Description          : Private implementation class for BinaryFilter.
0005     --------------------------------------------------------------------
0006     SPDX-FileCopyrightText: 2015-2017 Stefan Gerlach <stefan.gerlach@uni.kn>
0007 
0008     SPDX-License-Identifier: GPL-2.0-or-later
0009 */
0010 #ifndef BINARYFILTERPRIVATE_H
0011 #define BINARYFILTERPRIVATE_H
0012 
0013 #include <QVector>
0014 
0015 class AbstractDataSource;
0016 class AbstractColumn;
0017 
0018 class BinaryFilterPrivate {
0019 public:
0020     explicit BinaryFilterPrivate(BinaryFilter*);
0021 
0022     int prepareStreamToRead(QDataStream&);
0023     void readDataFromDevice(QIODevice& device,
0024                             AbstractDataSource* = nullptr,
0025                             AbstractFileFilter::ImportMode = AbstractFileFilter::ImportMode::Replace,
0026                             int lines = -1);
0027     void readDataFromFile(const QString& fileName, AbstractDataSource* = nullptr, AbstractFileFilter::ImportMode = AbstractFileFilter::ImportMode::Replace);
0028     void write(const QString& fileName, AbstractDataSource*);
0029     QVector<QStringList> preview(const QString& fileName, int lines);
0030 
0031     const BinaryFilter* q;
0032 
0033     size_t vectors{2};
0034     BinaryFilter::DataType dataType{BinaryFilter::DataType::INT8};
0035     QDataStream::ByteOrder byteOrder{QDataStream::LittleEndian};
0036     QVector<AbstractColumn::ColumnMode> columnModes;
0037 
0038     int startRow{1}; // start row (value*vectors) to read (can be -1)
0039     int endRow{-1}; // end row to (value*vectors) read (can be -1)
0040     size_t numRows{0}; // number of rows
0041     size_t skipStartBytes{0}; // bytes to skip at start
0042     size_t skipBytes{0}; // bytes to skip after each value
0043     bool createIndexEnabled{false}; // if create index column
0044 
0045     bool autoModeEnabled{true};
0046 
0047 private:
0048     int m_actualRows{0};
0049     int m_actualCols{0};
0050 };
0051 
0052 #endif