//
|
// Created by ps on 2/26/18.
|
//
|
|
#ifndef COMPARETEST_FACEDBCOMPARESERVER_H
|
#define COMPARETEST_FACEDBCOMPARESERVER_H
|
|
#include <pthread.h>
|
|
#include <Ice/Ice.h>
|
#include <basic/rpc/IceRpc.hpp>
|
#include <FaceSearchServer.h>
|
#include "AlarmServer.hpp"
|
#include "CasiaFaceWrapper/CasiaFaceWrapperN.h"
|
#include <basic/util/thread/RWLock.hpp>
|
#include <ErlangDbTool.h>
|
#include <SqliteFaceEncap.h>
|
|
class FaceDBCompareServer : public AlarmServer {
|
|
public:
|
FaceDBCompareServer();
|
|
FaceDBCompareServer(SqliteFaceEncap *);
|
|
FaceDBCompareServer(ErlangTool::ErlangDbTool *);
|
|
~FaceDBCompareServer();
|
|
virtual bool compare(std::thread::id key, AlarmData *alarmData, int topN);
|
|
bool compare(std::thread::id key, AlarmData *alarmData);
|
|
FaceResults getTopResult(std::thread::id key);
|
|
private:
|
virtual void loadDBData(std::string str_config);
|
|
protected:
|
CasiaFaceWrapperN m_casiaFaceWapper;
|
std::string m_tableName;
|
|
int fea_size;
|
RWLock m_rwLock;
|
std::mutex topResultMtx;
|
std::map<std::thread::id, FaceResults> topResult;
|
std::map<std::thread::id, RWLock> m_dbRWLocks;
|
|
ErlangTool::ErlangDbTool *m_erlangDbTool;
|
SqliteFaceEncap *m_sqliteFaceEncap;
|
|
};
|
|
static bool getRet(std::string startTime, std::string endTime) {
|
auto crrentTime = AppUtil::getTimeSecString();
|
|
if (crrentTime.compare(startTime) > 0 && crrentTime.compare(endTime) < 0) {
|
return true;
|
}
|
return false;
|
|
}
|
|
#endif //COMPARETEST_FACEDBCOMPARESERVER_H
|