File indexing completed on 2024-06-16 07:42:26

0001 /*
0002     SPDX-FileCopyrightText: 2005-2009 Sebastian Trueg <trueg@k3b.org>
0003     SPDX-FileCopyrightText: 1998-2009 Sebastian Trueg <trueg@k3b.org>
0004 
0005     SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007 
0008 
0009 #ifndef _K3B_MEDIA_CACHE_P_H_
0010 #define _K3B_MEDIA_CACHE_P_H_
0011 
0012 #include "k3bmediacache.h"
0013 
0014 class K3b::MediaCache::DeviceEntry
0015 {
0016 public:
0017     DeviceEntry( MediaCache* cache, Device::Device* dev );
0018     ~DeviceEntry();
0019 
0020     Medium medium;
0021 
0022     int blockedId;
0023 
0024     QMutex readMutex;
0025     QMutex writeMutex;
0026 
0027     MediaCache::PollThread* thread;
0028 
0029     MediaCache* cache;
0030 
0031     void clear() {
0032         medium.reset();
0033     }
0034 };
0035 
0036 
0037 class K3b::MediaCache::PollThread : public QThread
0038 {
0039     Q_OBJECT
0040 
0041 public:
0042     PollThread( MediaCache::DeviceEntry* de )
0043         : m_deviceEntry( de ) {}
0044 
0045 Q_SIGNALS:
0046     void mediumChanged( K3b::Device::Device* dev );
0047     void checkingMedium( K3b::Device::Device* dev, const QString& );
0048 
0049 protected:
0050     void run() override;
0051 
0052 private:
0053     MediaCache::DeviceEntry* m_deviceEntry;
0054 };
0055 
0056 #endif