// // 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 */ /*** * sqlite3 操作工具类 */ class SqliteFaceEncap : public sqliteEncapsulation { public: explicit SqliteFaceEncap(std::string t_string); /*** * 创建布控底库 * 不通用,因为内部有一个insert函数调用 * @param t_tableName * @param fieldValues * @return */ bool createTable(std::string t_tableName, FieldValues &fieldValues); /*** * 通用的单表更新 * @param t_tableName * @param fieldValues * @return */ bool updateTable(std::string t_tableName, FieldValues &fieldValues); /*** * 删除表 * @param t_tableName * @return */ bool deleteTable(std::string t_tableName); /*** * 根据底库类型获取底库列表 * @param type 底库类型 * @return 底库列表 */ std::vector getTableNameList(std::string type); /*** * 获取所有已创建的表信息 * @return */ TableInfos getTableInfos(); public: /*** * 添加人脸 * @param t_tableName 表名 * @param faceData 人脸特征结构体 * @param fieldValues 字段集合 * @return */ std::string addFace(std::string t_tableName, AddFaceData &faceData, FieldValues &fieldValues); /*** * 更新人脸 * @param t_tableName 表名 * @param faceData 人脸特征结构体 * @param fieldValues 字段集合 * @return */ bool updateFace(std::string t_tableName, AddFaceData &faceData, FieldValues &fieldValues); /*** * 向人脸特征表插入记录 * @param t_tableName * @param faceData * @return */ std::string addFaceData(std::string t_tableName, AddFaceData &faceData); //#todo /*** * 添加人脸业务信息 * @param t_tableName * @param fieldValues * @return */ bool addFaceInfo(std::string t_tableName, FieldValues &fieldValues); /*** * * @param t_tableName * @param faceData * @return */ bool updateFaceData(std::string t_tableName, AddFaceData &faceData); /*** * * @param t_tableName * @param fieldValues * @return */ bool updateFaceInfo(std::string t_tableName, FieldValues &fieldValues); /*** * * @param t_tableName * @param uuid * @return */ bool deleteFace(std::string t_tableName, std::string uuid); private: /*** * * @param t_tableName * @param uuid * @return */ 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