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

0001 /*
0002     File                 : HDF5Filter.h
0003     Project              : LabPlot
0004     Description          : HDF5 I/O-filter
0005     --------------------------------------------------------------------
0006     SPDX-FileCopyrightText: 2015-2022 Stefan Gerlach <stefan.gerlach@uni.kn>
0007     SPDX-License-Identifier: GPL-2.0-or-later
0008 */
0009 #ifndef HDF5FILTER_H
0010 #define HDF5FILTER_H
0011 
0012 #include "backend/datasources/filters/AbstractFileFilter.h"
0013 
0014 class QTreeWidgetItem;
0015 class HDF5FilterPrivate;
0016 
0017 class HDF5Filter : public AbstractFileFilter {
0018     Q_OBJECT
0019 
0020 public:
0021     HDF5Filter();
0022     ~HDF5Filter() override;
0023 
0024     static QString fileInfoString(const QString&);
0025     static QString fileDDLString(const QString&);
0026 
0027     int parse(const QString& fileName, QTreeWidgetItem* rootItem);
0028     void
0029     readDataFromFile(const QString& fileName, AbstractDataSource* = nullptr, AbstractFileFilter::ImportMode = AbstractFileFilter::ImportMode::Replace) override;
0030     QVector<QStringList> readCurrentDataSet(const QString& fileName,
0031                                             AbstractDataSource*,
0032                                             bool& ok,
0033                                             AbstractFileFilter::ImportMode = AbstractFileFilter::ImportMode::Replace,
0034                                             int lines = -1);
0035     void write(const QString& fileName, AbstractDataSource*) override;
0036 
0037     void setCurrentDataSetName(const QString&);
0038     const QString currentDataSetName() const;
0039 
0040     void setStartRow(const int);
0041     int startRow() const;
0042     void setEndRow(const int);
0043     int endRow() const;
0044     void setStartColumn(const int);
0045     int startColumn() const;
0046     void setEndColumn(const int);
0047     int endColumn() const;
0048 
0049     void save(QXmlStreamWriter*) const override;
0050     bool load(XmlStreamReader*) override;
0051 
0052 private:
0053     std::unique_ptr<HDF5FilterPrivate> const d;
0054     friend class HDF5FilterPrivate;
0055 };
0056 
0057 #endif