// // Created by pans on 4/28/18. // #ifndef TESTSQLITE_SQLITEFACEENCAP_H #define TESTSQLITE_SQLITEFACEENCAP_H #include "sqliteEncapsulation.h" #include "SqliteToolkit.hpp" /** * #todo sqlite -> Qt.sqlite */ class SqliteFaceEncap : public sqliteEncapsulation { public: explicit SqliteFaceEncap(std::string t_string); bool createTable(std::string t_tableName, FieldValues &fieldValues); bool updateTable(std::string t_tableName, FieldValues &fieldValues); bool deleteTable(std::string t_tableName); /*** * 根据底库类型获取底库列表 * @param type 底库类型 * @return 底库列表 */ std::vector getTableNameList(std::string type); TableInfos getTableInfos(); public: std::string addFace(std::string t_tableName, AddFaceData &faceData, FieldValues &fieldValues); bool updateFace(std::string t_tableName, AddFaceData &faceData, FieldValues &fieldValues); std::string addFaceData(std::string t_tableName, AddFaceData &faceData); //#todo bool addFaceInfo(std::string t_tableName, FieldValues &fieldValues); bool updateFaceData(std::string t_tableName, AddFaceData &faceData); bool updateFaceInfo(std::string t_tableName, FieldValues &fieldValues); bool deleteFace(std::string t_tableName, std::string uuid); private: bool deleteFaceData(std::string t_tableName, std::string uuid); public: /*** * 根据人脸表名称获取人脸特征列表 * @param tableName 表面 * @return 人脸特征集合 */ FeatureDBWithUrlCache *getFacesFromTable(std::string tableName); FaceInfosCache getFaceInfoFromTable(std::string tableName); FeatureDBWithUrlCache getFacesFromTableWhereDate(std::string tableName, std::string date); private: void initDB(const char *t_string) const; private: sqlite3 *db; char *zErrMsg = 0; std::mutex dataMtx; // FeatureDBCache m_db; std::map m_dbCache; }; #endif //TESTSQLITE_SQLITEFACEENCAP_H