Newer
Older
CasicBioRecNew / casic / ProMemory.cpp
#include "ProMemory.h"

ProMemory::ProMemory()
{
    this->initFaceFeatures();
}

ProMemory::~ProMemory()
{

}

QVector<QVariantMap> ProMemory::getFaceFeatures()
{
    return this->faceFeatures;
}

void ProMemory::pushCasicFace(CasicFaceInfo faceInfo)
{
    QMutex mutex;
    mutex.lock();
    if (this->faceQueue.size() > 30)
    {
        QStack<CasicFaceInfo> empty;
        std::swap(empty, faceQueue);
    }

    faceQueue.push(faceInfo);
    mutex.unlock();
}

CasicFaceInfo ProMemory::popCasicFace()
{
    CasicFaceInfo result;

    QMutex mutex;
    mutex.lock();
    if (this->faceQueue.size() > 0)
    {
        result = faceQueue.pop();
    }

    mutex.unlock();

    return result;
}

int ProMemory::getFaceQueueSize()
{
    int size = 0;

    QMutex mutex;
    mutex.lock();

    size = this->faceQueue.size();

    mutex.unlock();

    return size;
}

bool ProMemory::isFaceQueueEmpty()
{
    bool empty = true;

    QMutex mutex;
    mutex.lock();

    empty = this->faceQueue.isEmpty();

    mutex.unlock();

    return empty;
}

void ProMemory::clearFaceQueue()
{
    QMutex mutex;
    mutex.lock();

    QStack<CasicFaceInfo> empty;
    std::swap(empty, faceQueue);

    mutex.unlock();
}


//void ProMemory::pushCasicIris(CasicIrisInfo irisInfo)
//{
//    QMutex mutex;
//    mutex.lock();
//    if (this->irisQueue.size() > 30)
//    {
//        QStack<CasicIrisInfo> empty;
//        swap(empty, irisQueue);
//    }

//    irisQueue.push(irisInfo);
//    mutex.unlock();
//}
//CasicIrisInfo ProMemory::popCasicIris()
//{
//    CasicIrisInfo result;

//    QMutex mutex;
//    mutex.lock();
//    if (this->irisQueue.size() > 0)
//    {
//        result = irisQueue.pop();
//    }

//    mutex.unlock();

//    return result;
//}
int ProMemory::getIrisQueueSize()
{
    int size = 0;

    QMutex mutex;
    mutex.lock();

//    size = this->irisQueue.size();

    mutex.unlock();

    return size;
}
bool ProMemory::isIrisQueueEmpty()
{
    bool empty = true;

    QMutex mutex;
    mutex.lock();

//    empty = this->irisQueue.isEmpty();

    mutex.unlock();

    return empty;
}
void ProMemory::clearIrisQueue()
{
    QMutex mutex;
    mutex.lock();

//    QStack<CasicIrisInfo> empty;
//    swap(empty, irisQueue);

    mutex.unlock();
}

void ProMemory::initFaceFeatures()
{
    FaceDataDao faceDataDao;
    this->faceFeatures = faceDataDao.findAllRecord();
}

void ProMemory::initIrisFeatures()
{

}