Serialiser.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 2007 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_SERIALISER_H
17 #define SV_SERIALISER_H
18 
19 #include <QString>
20 #include <QMutex>
21 
22 #include <map>
23 #include <atomic>
24 
26 {
27 public:
33  Serialiser(QString id);
34 
42  Serialiser(QString id, const std::atomic<bool> *cancelled);
43 
48  ~Serialiser();
49 
50  QString getId() const { return m_id; }
51 
52 protected:
53  QString m_id;
54  const std::atomic<bool> *m_cancelled;
55  bool m_locked;
56  static QMutex m_mapMutex;
57  static std::map<QString, QMutex *> m_mutexMap;
58 };
59 
60 #endif
static QMutex m_mapMutex
Definition: Serialiser.h:56
QString m_id
Definition: Serialiser.h:53
~Serialiser()
Release the lock associated with the given id (if taken, rather than cancelled).
Definition: Serialiser.cpp:66
const std::atomic< bool > * m_cancelled
Definition: Serialiser.h:54
static std::map< QString, QMutex * > m_mutexMap
Definition: Serialiser.h:57
QString getId() const
Definition: Serialiser.h:50
bool m_locked
Definition: Serialiser.h:55
Serialiser(QString id)
Construct a serialiser that takes the lock associated with the given id.
Definition: Serialiser.cpp:27