//
|
// 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<std::string> 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<std::string, FeatureDBWithUrlCache> m_dbCache;
|
};
|
|
|
#endif //TESTSQLITE_SQLITEFACEENCAP_H
|