Newer
Older
CasicIrisIdentify / ProMemory.h
TAN YUE on 15 Nov 2023 1 KB 20231115 识别调试
#ifndef PROMEMORY_H
#define PROMEMORY_H

#include <QMutex>
#include <QStack>

#include "AppConstants.h"
#include "casic/iris/CasicIrisInfo.h"
#include "dao/IrisDataDao.h"
#include "utils/SocketClientUtil.h"

#include "device/IrisCameraController.h"
#include "device/iris/IrisRecogProcess.h"

class IrisCameraController;
class IrisRegistProcess;
class IrisRecogProcess;

class ProMemory
{
public:
    ~ProMemory();
    ProMemory(const ProMemory&)=delete;
    ProMemory& operator=(const ProMemory&)=delete;

    static ProMemory& getInstance() {
        static ProMemory instance;
        return instance;
    }

    void pushCasicIris(CasicIrisInfo irisInfo);
    CasicIrisInfo popCasicIris();
    int getIrisQueueSize();
    bool isIrisQueueEmpty();
    void clearIrisQueue();

    volatile int widgeFrame = 0; // 当前显示的界面
    volatile int appState = 0; // 当前程序所处的状态

    void initIrisFeatures();
//    void initIrisFeatures(QString personId = ""); // 初始化虹膜特征值集合

    QVector<CasicIrisFeature> getIrisFeatures();

    IrisCameraController * irisCam;
    IrisRecogProcess * irisRecogPro;

    SocketClientUtil client;

private:
    ProMemory();

    QStack<CasicIrisInfo> irisQueue; // 虹膜信息队列
    QVector<CasicIrisFeature> irisFeatures; // 虹膜特征值集合
};

#endif // PROMEMORY_H