CachedFile.h
Go to the documentation of this file.
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2 
3 /*
4  Sonic Visualiser
5  An audio file viewer and annotation editor.
6  Centre for Digital Music, Queen Mary, University of London.
7  This file copyright 2008 QMUL.
8 
9  This program is free software; you can redistribute it and/or
10  modify it under the terms of the GNU General Public License as
11  published by the Free Software Foundation; either version 2 of the
12  License, or (at your option) any later version. See the file
13  COPYING included with this distribution for more information.
14 */
15 
16 #ifndef SV_CACHED_FILE_H
17 #define SV_CACHED_FILE_H
18 
19 #include <QString>
20 #include <QUrl>
21 #include <QDateTime>
22 #include <map>
23 
24 class ProgressReporter;
25 
27 {
28 public:
29  CachedFile(QString fileOrUrl,
30  ProgressReporter *reporter = 0,
31  QString preferredContentType = "");
32  CachedFile(QUrl url,
33  ProgressReporter *reporter = 0,
34  QString preferredContentType = "");
35 
36  virtual ~CachedFile();
37 
38  bool isOK() const;
39 
40  QString getLocalFilename() const;
41 
42 protected:
43  QString m_origin;
44  QString m_localFilename;
47  bool m_ok;
48 
49  void checkFile();
50  bool retrieve();
51 
52  QDateTime getLastRetrieval();
53  void updateLastRetrieval(bool successful);
54 
55  static QString getCacheDirectory();
56  static QString getLocalFilenameFor(QUrl url);
57 
58  typedef std::map<QString, QString> OriginLocalFilenameMap;
59  static OriginLocalFilenameMap m_knownGoodCaches;
60 };
61 
62 #endif
bool retrieve()
Definition: CachedFile.cpp:183
bool m_ok
Definition: CachedFile.h:47
CachedFile(QString fileOrUrl, ProgressReporter *reporter=0, QString preferredContentType="")
Definition: CachedFile.cpp:71
void checkFile()
Definition: CachedFile.cpp:118
QString m_localFilename
Definition: CachedFile.h:44
static OriginLocalFilenameMap m_knownGoodCaches
Definition: CachedFile.h:59
QString m_preferredContentType
Definition: CachedFile.h:45
QDateTime getLastRetrieval()
Definition: CachedFile.cpp:235
QString m_origin
Definition: CachedFile.h:43
QString getLocalFilename() const
Definition: CachedFile.cpp:112
std::map< QString, QString > OriginLocalFilenameMap
Definition: CachedFile.h:58
static QString getLocalFilenameFor(QUrl url)
Definition: CachedFile.cpp:39
bool isOK() const
Definition: CachedFile.cpp:106
static QString getCacheDirectory()
Definition: CachedFile.cpp:54
virtual ~CachedFile()
Definition: CachedFile.cpp:101
ProgressReporter * m_reporter
Definition: CachedFile.h:46
void updateLastRetrieval(bool successful)
Definition: CachedFile.cpp:250