// // Created by ps on 2/26/18. // #ifndef COMPARETEST_FACEDBCOMPARESERVER_H #define COMPARETEST_FACEDBCOMPARESERVER_H #include #include #include #include #include "AlarmServer.hpp" #include "CasiaFaceWrapper/CasiaFaceWrapperN.h" #include #include #include 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 topResult; std::map 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 || endTime == "0000-00-00 00:00:00")) { return true; } return false; } #endif //COMPARETEST_FACEDBCOMPARESERVER_H