annotate base/Thread.h @ 335:02d2ad95ea52 spectrogram-cache-rejig

* Get storage advice for each cache in an FFT data server. Allows us to be more confident about the actual memory situation and cut over from memory to disc part way through an FFT calculation if necessary. StorageAdviser is now a bit too optimistic though (it's too keen to allocate large numbers of small blocks in memory).
author Chris Cannam
date Tue, 13 Nov 2007 13:54:10 +0000
parents 85bf384db35f
children 183ee2a55fc7
rev   line source
Chris@109 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@109 2
Chris@109 3 /*
Chris@109 4 Sonic Visualiser
Chris@109 5 An audio file viewer and annotation editor.
Chris@109 6 Centre for Digital Music, Queen Mary, University of London.
Chris@109 7 This file copyright 2006 Chris Cannam.
Chris@109 8
Chris@109 9 This program is free software; you can redistribute it and/or
Chris@109 10 modify it under the terms of the GNU General Public License as
Chris@109 11 published by the Free Software Foundation; either version 2 of the
Chris@109 12 License, or (at your option) any later version. See the file
Chris@109 13 COPYING included with this distribution for more information.
Chris@109 14 */
Chris@109 15
Chris@109 16 #ifndef _THREAD_H_
Chris@109 17 #define _THREAD_H_
Chris@109 18
Chris@109 19 #include <QThread>
Chris@244 20 #include <QMutexLocker>
Chris@109 21
Chris@109 22 class Thread : public QThread
Chris@109 23 {
Chris@109 24 Q_OBJECT
Chris@109 25
Chris@109 26 public:
Chris@109 27 enum Type { RTThread, NonRTThread };
Chris@109 28
Chris@109 29 Thread(Type type = NonRTThread, QObject *parent = 0);
Chris@109 30
Chris@109 31 public slots:
Chris@109 32 void start();
Chris@109 33
Chris@109 34 private:
Chris@109 35 Type m_type;
Chris@109 36 };
Chris@109 37
Chris@244 38
Chris@244 39 class MutexLocker
Chris@244 40 {
Chris@244 41 public:
Chris@244 42 MutexLocker(QMutex *mutex, const char *name);
Chris@244 43 ~MutexLocker();
Chris@244 44
Chris@244 45 private:
Chris@244 46 class Printer {
Chris@244 47 public:
Chris@244 48 Printer(const char *name);
Chris@244 49 ~Printer();
Chris@244 50
Chris@244 51 private:
Chris@244 52 const char *m_name;
Chris@244 53 };
Chris@244 54
Chris@244 55 Printer m_printer;
Chris@244 56 QMutexLocker m_locker;
Chris@244 57 };
Chris@244 58
Chris@109 59 #endif