annotate data/fileio/CachedFile.h @ 631:3a5ee4b6c9ad

* Complete the overhaul of CSV file import; now you can pick the purpose for each column in the file, and SV should do the rest. The most significant practical improvement here is that we can now handle files in which time and duration do not necessarily appear in known columns.
author Chris Cannam
date Mon, 19 Jul 2010 17:08:56 +0000
parents e340b2fb9471
children b99dc5465b80
rev   line source
Chris@465 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@465 2
Chris@465 3 /*
Chris@465 4 Sonic Visualiser
Chris@465 5 An audio file viewer and annotation editor.
Chris@465 6 Centre for Digital Music, Queen Mary, University of London.
Chris@465 7 This file copyright 2008 QMUL.
Chris@465 8
Chris@465 9 This program is free software; you can redistribute it and/or
Chris@465 10 modify it under the terms of the GNU General Public License as
Chris@465 11 published by the Free Software Foundation; either version 2 of the
Chris@465 12 License, or (at your option) any later version. See the file
Chris@465 13 COPYING included with this distribution for more information.
Chris@465 14 */
Chris@465 15
Chris@465 16 #ifndef _CACHED_FILE_H_
Chris@465 17 #define _CACHED_FILE_H_
Chris@465 18
Chris@465 19 #include <QString>
Chris@465 20 #include <QUrl>
Chris@465 21 #include <QDateTime>
Chris@481 22 #include <map>
Chris@465 23
Chris@465 24 class ProgressReporter;
Chris@465 25
Chris@465 26 class CachedFile
Chris@465 27 {
Chris@465 28 public:
Chris@520 29 CachedFile(QString fileOrUrl,
Chris@520 30 ProgressReporter *reporter = 0,
Chris@520 31 QString preferredContentType = "");
Chris@520 32 CachedFile(QUrl url,
Chris@520 33 ProgressReporter *reporter = 0,
Chris@520 34 QString preferredContentType = "");
Chris@465 35
Chris@465 36 virtual ~CachedFile();
Chris@465 37
Chris@465 38 bool isOK() const;
Chris@465 39
Chris@465 40 QString getLocalFilename() const;
Chris@465 41
Chris@465 42 protected:
Chris@468 43 QString m_origin;
Chris@465 44 QString m_localFilename;
Chris@520 45 QString m_preferredContentType;
Chris@466 46 ProgressReporter *m_reporter;
Chris@465 47 bool m_ok;
Chris@465 48
Chris@467 49 void check();
Chris@465 50 bool retrieve();
Chris@465 51
Chris@465 52 QDateTime getLastRetrieval();
Chris@465 53 void updateLastRetrieval(bool successful);
Chris@465 54
Chris@465 55 static QString getCacheDirectory();
Chris@465 56 static QString getLocalFilenameFor(QUrl url);
Chris@481 57
Chris@481 58 typedef std::map<QString, QString> OriginLocalFilenameMap;
Chris@481 59 static OriginLocalFilenameMap m_knownGoodCaches;
Chris@465 60 };
Chris@465 61
Chris@465 62 #endif