chenshijun
2019-04-22 d5ae54ceb9770963fbe88aa0170c08d0ae648b05
QiaoJiaSystem/FaceSearchServer/FaceDBCompareServer.h
@@ -21,19 +21,35 @@
public:
    FaceDBCompareServer();
    /**
     * 本地库构造
     */
    FaceDBCompareServer(SqliteFaceEncap *);
    /***
     * 同步库构造
     */
    FaceDBCompareServer(ErlangTool::ErlangDbTool *);
    ~FaceDBCompareServer();
    virtual bool compare(std::thread::id key, AlarmData *alarmData, int topN);
    /***
     * @deprecated
     * @param key
     * @param alarmData
     * @return
     */
    bool compare(std::thread::id key, AlarmData *alarmData);
    FaceResults getTopResult(std::thread::id key);
private:
    /**
     * 加载特征
     * @param str_config
     */
    virtual void loadDBData(std::string str_config);
protected:
@@ -41,10 +57,14 @@
    std::string m_tableName;
    int fea_size;
    // 保护父类的dataMap
    RWLock m_rwLock;
    std::mutex topResultMtx;
    std::map<std::thread::id, FaceResults> topResult;
    // 保护m_dbRWLocks
    RWLock m_dbRWLocks_Lock;
    // 保护 topResult
    std::map<std::thread::id, RWLock> m_dbRWLocks;
    ErlangTool::ErlangDbTool *m_erlangDbTool;
@@ -54,8 +74,9 @@
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")) {
    // 根据当前时间是否在设置的时间内或永久生效
    if (crrentTime.compare(startTime) > 0 && (crrentTime.compare(endTime) < 0
                                              || endTime == "0000-00-00 00:00:00")) {
        return true;
    }
    return false;