| | |
| | | |
| | | //#todo map 1->2 modify 2->1 |
| | | bool FaceDBCompareServer::compare(thread::id key, AlarmData *alarmData, int topN) { |
| | | m_dbRWLocks_Lock.wrlock(); |
| | | if (m_dbRWLocks.find(key) == m_dbRWLocks.end()) { |
| | | m_dbRWLocks[key] = RWLock(); |
| | | } |
| | | RWLock &t_rwl = m_dbRWLocks[key]; |
| | | DBG("m_dbRWLocks ok"); |
| | | m_dbRWLocks_Lock.unlock(); |
| | | // ClockTimer clockTimer("compare "); |
| | | RWLock t_rwLock; |
| | | |
| | |
| | | int maxSearchFaces = alarmData->num; |
| | | |
| | | t_rwl.wrlock(); |
| | | DBG("topResult[key] before"); |
| | | auto &t_topResult = topResult[key]; |
| | | DBG("topResult[key] ok"); |
| | | t_topResult.clear(); |
| | | for (auto &item : t_compareResults) { |
| | | auto &it = item.second; |
| | |
| | | // 同步库/特征是base64 |
| | | // #todo sqlite search data from file |
| | | auto str_tab = t_json["\"tableName\""].asString(); |
| | | DBG("str_tab is " << str_tab); |
| | | m_tableName = str_tab.substr(1, str_tab.length() - 2);//.append("_fea"); |
| | | |
| | | |
| | | DBG("m_tableName is " << m_tableName); |
| | | |
| | | // string tet = "./syncDBClient "; |
| | | // string str_json = writer.write(t_json); |
| | |
| | | // auto mymap = biMapFeaData.getMap(); |
| | | |
| | | auto mymap = m_erlangDbTool->loadFaceFeaData(m_tableName); |
| | | DBG(m_tableName << " db size is " << mymap.size()); |
| | | for (auto &item : mymap) { |
| | | auto &it = item.second; |
| | | string str2; |
| | |
| | | printf("Exception:%s\n", e.what()); |
| | | // BISTL::shared_memory_object::remove(m_tableName.c_str()); |
| | | } |
| | | appPref.setIntData(m_tableName, 1); |
| | | // BISTL::shared_memory_object::remove(m_tableName.c_str()); |
| | | } else { |
| | | //#todo get sqlite3 data |