annotate data/fileio/CSVFileWriter.h @ 1078:ce82bcdc95d0

Fail upfront if the file is going to be too large. We expect the caller to split up large data sets into several MatrixFiles
author Chris Cannam
date Wed, 10 Jun 2015 13:10:26 +0100
parents 074d7c51e973
children 365876627fb0
rev   line source
Chris@148 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@148 2
Chris@148 3 /*
Chris@148 4 Sonic Visualiser
Chris@148 5 An audio file viewer and annotation editor.
Chris@148 6 Centre for Digital Music, Queen Mary, University of London.
Chris@148 7 This file copyright 2006 Chris Cannam.
Chris@148 8
Chris@148 9 This program is free software; you can redistribute it and/or
Chris@148 10 modify it under the terms of the GNU General Public License as
Chris@148 11 published by the Free Software Foundation; either version 2 of the
Chris@148 12 License, or (at your option) any later version. See the file
Chris@148 13 COPYING included with this distribution for more information.
Chris@148 14 */
Chris@148 15
Chris@148 16 #ifndef _CSV_FILE_WRITER_H_
Chris@148 17 #define _CSV_FILE_WRITER_H_
Chris@148 18
Chris@148 19 #include <QObject>
Chris@148 20 #include <QString>
Chris@148 21
Chris@1063 22 #include "base/DataExportOptions.h"
Chris@1063 23
Chris@148 24 class Model;
Chris@839 25 class MultiSelection;
Chris@148 26
Chris@148 27 class CSVFileWriter : public QObject
Chris@148 28 {
Chris@148 29 Q_OBJECT
Chris@148 30
Chris@148 31 public:
Chris@1063 32 CSVFileWriter(QString path,
Chris@1063 33 Model *model,
Chris@1063 34 QString delimiter = ",",
Chris@1063 35 DataExportOptions options = DataExportDefaults);
Chris@148 36 virtual ~CSVFileWriter();
Chris@148 37
Chris@148 38 virtual bool isOK() const;
Chris@148 39 virtual QString getError() const;
Chris@148 40
Chris@148 41 virtual void write();
Chris@839 42 virtual void writeSelection(MultiSelection *selection);
Chris@148 43
Chris@148 44 protected:
Chris@148 45 QString m_path;
Chris@148 46 Model *m_model;
Chris@148 47 QString m_error;
Chris@148 48 QString m_delimiter;
Chris@1063 49 DataExportOptions m_options;
Chris@148 50 };
Chris@148 51
Chris@148 52 #endif
Chris@148 53
Chris@148 54