TempDirectory.h

Go to the documentation of this file.
00001 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
00002 
00003 /*
00004     Sonic Visualiser
00005     An audio file viewer and annotation editor.
00006     Centre for Digital Music, Queen Mary, University of London.
00007     This file copyright 2006 Chris Cannam.
00008     
00009     This program is free software; you can redistribute it and/or
00010     modify it under the terms of the GNU General Public License as
00011     published by the Free Software Foundation; either version 2 of the
00012     License, or (at your option) any later version.  See the file
00013     COPYING included with this distribution for more information.
00014 */
00015 
00016 #ifndef _TEMP_DIRECTORY_H_
00017 #define _TEMP_DIRECTORY_H_
00018 
00019 #include <QString>
00020 #include <QMutex>
00021 
00022 #include <exception>
00023 
00033 class TempDirectory
00034 {
00035 public:
00036     static TempDirectory *getInstance();
00037     
00038     virtual ~TempDirectory();
00039 
00045     QString getPath();
00046 
00053     QString getSubDirectoryPath(QString subdir);
00054 
00058     void cleanup();
00059 
00060 protected:
00061     TempDirectory();
00062 
00063     QString createTempDirectoryIn(QString inDir);
00064     void cleanupDirectory(QString tmpDir);
00065     void cleanupAbandonedDirectories(QString svDir);
00066 
00067     QString m_tmpdir;
00068     QMutex m_mutex;
00069 
00070     static TempDirectory *m_instance;
00071 };
00072 
00073 
00074 #endif

Generated on Wed Feb 20 15:45:28 2008 for SonicVisualiser by  doxygen 1.5.1