File indexing completed on 2024-05-12 03:47:42

0001 /*
0002     File        : AbstractDataSource.h
0003     Project     : LabPlot
0004     Description     : Interface for data sources
0005     --------------------------------------------------------------------
0006     SPDX-FileCopyrightText: 2009-2017 Alexander Semke <alexander.semke@web.de>
0007     SPDX-FileCopyrightText: 2015 Stefan Gerlach <stefan.gerlach@uni.kn>
0008 
0009     SPDX-License-Identifier: GPL-2.0-or-later
0010 */
0011 #ifndef ABSTRACTDATASOURCE_H
0012 #define ABSTRACTDATASOURCE_H
0013 
0014 #include "backend/core/AbstractColumn.h"
0015 #include "backend/core/AbstractPart.h"
0016 #include "backend/datasources/filters/AbstractFileFilter.h"
0017 
0018 class AbstractDataSource : public AbstractPart {
0019     Q_OBJECT
0020 
0021 public:
0022     AbstractDataSource(const QString& name, AspectType type);
0023     ~AbstractDataSource() override = default;
0024 
0025     void clear();
0026     virtual int prepareImport(std::vector<void*>& dataContainer,
0027                               AbstractFileFilter::ImportMode,
0028                               int actualRows,
0029                               int actualCols,
0030                               QStringList colNameList = QStringList(),
0031                               QVector<AbstractColumn::ColumnMode> = QVector<AbstractColumn::ColumnMode>(),
0032                               bool initializeDataContainer = true) = 0;
0033     virtual void finalizeImport(size_t columnOffset = 0,
0034                                 size_t startColumn = 0,
0035                                 size_t endColumn = 0,
0036                                 const QString& dateTimeFormat = QString(),
0037                                 AbstractFileFilter::ImportMode importMode = AbstractFileFilter::ImportMode::Replace) = 0;
0038 };
0039 
0040 #endif // ABSTRACTDATASOURCE_H