45 lines
989 B
C
45 lines
989 B
C
|
#ifndef FIFOCONTAINER_H
|
||
|
#define FIFOCONTAINER_H
|
||
|
|
||
|
#include <deque>
|
||
|
#include <QString>
|
||
|
#include <QSettings>
|
||
|
#include "nlohmann/json.hpp"
|
||
|
|
||
|
using Json = nlohmann::json;
|
||
|
|
||
|
struct QStringPair {
|
||
|
QString first; // 第一个 QString
|
||
|
QString second; // 第二个 QString
|
||
|
|
||
|
// 构造函数
|
||
|
QStringPair(const QString& f, const QString& s) : first(f), second(s) {}
|
||
|
};
|
||
|
|
||
|
class FIFOContainer
|
||
|
{
|
||
|
public:
|
||
|
// 构造函数,设置最大记录数
|
||
|
FIFOContainer(size_t max_size);
|
||
|
|
||
|
// 添加文件路径
|
||
|
void addRecord(const QString& filePath);
|
||
|
|
||
|
// 显示当前容器中的所有路径
|
||
|
void displayRecords() const;
|
||
|
|
||
|
// 保存路径到 .ini 文件
|
||
|
void saveToFile(const QString& fileName) const;
|
||
|
|
||
|
// 从 .ini 文件加载路径
|
||
|
void loadFromFile(const QString& fileName);
|
||
|
|
||
|
Json toJson() const;
|
||
|
|
||
|
private:
|
||
|
std::deque<QStringPair> m_queue; // 使用 deque 实现 FIFO
|
||
|
size_t m_max_size; // 最大记录数
|
||
|
};
|
||
|
|
||
|
#endif // FIFOCONTAINER_H
|