2024-05-30 17:25:23 +08:00
|
|
|
|
#include "FavoriteCfg.h"
|
2024-03-19 17:45:12 +08:00
|
|
|
|
#include "BaseConfig.h"
|
|
|
|
|
|
|
|
|
|
FavoriteCfg::FavoriteCfg()
|
2024-05-30 17:25:23 +08:00
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
2024-03-19 17:45:12 +08:00
|
|
|
|
|
|
|
|
|
FavoriteCfg::~FavoriteCfg()
|
|
|
|
|
{}
|
|
|
|
|
|
|
|
|
|
void FavoriteCfg::GetUpdateSql(std::vector<std::string>& ups)
|
|
|
|
|
{
|
|
|
|
|
char buffer[512];
|
|
|
|
|
string strtemp = "INSERT INTO %s(%s,%s,%s) VALUES('%s',";
|
|
|
|
|
sprintf_s(buffer, sizeof(buffer), strtemp.c_str(),
|
|
|
|
|
BaseConfig::TABLE_NAME.c_str(),
|
|
|
|
|
BaseConfig::FIELD_CONFIG_NAME.c_str(),
|
|
|
|
|
BaseConfig::FIELD_CONFIG_CODE.c_str(),
|
|
|
|
|
BaseConfig::FIELD_CONFIG_VALUE.c_str(),
|
|
|
|
|
FavoriteCfg::CONFIG_NAME.c_str()
|
|
|
|
|
);
|
|
|
|
|
string strsql = string(buffer) + "'%s','%s')";
|
|
|
|
|
|
|
|
|
|
std::map<std::string, std::string>::iterator it;
|
|
|
|
|
for (it = mFavoriteMap.begin(); it != mFavoriteMap.end(); it++)
|
|
|
|
|
{
|
|
|
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(),
|
|
|
|
|
it->first.c_str(),
|
|
|
|
|
it->second.c_str());
|
|
|
|
|
ups.push_back(buffer);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void FavoriteCfg::Add(std::string name, std::string value)
|
|
|
|
|
{
|
|
|
|
|
mFavoriteMap[name] = value;
|
|
|
|
|
}
|
|
|
|
|
|
2024-05-30 17:25:23 +08:00
|
|
|
|
|
|
|
|
|
void FavoriteCfg::UpdateSub(const ReadData& rd) {
|
|
|
|
|
{
|
|
|
|
|
std::unique_lock<std::shared_mutex> lock(m_mtx); //写锁
|
|
|
|
|
if (rd.handleType == UPDATE) {
|
|
|
|
|
mFavoriteMap[rd.nameKey] = rd.strValue;
|
|
|
|
|
m_baseMp[rd.nameKey]->SetValue(rd.strValue);
|
|
|
|
|
}
|
|
|
|
|
else if (rd.handleType == ADD) {
|
|
|
|
|
if (mFavoriteMap.find(rd.nameKey) == mFavoriteMap.end()) {
|
|
|
|
|
mFavoriteMap[rd.nameKey] = rd.strValue;
|
|
|
|
|
m_baseMp[rd.nameKey] = new StrData(rd.nameKey, u8"", rd.strValue);
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
mFavoriteMap[rd.nameKey] = rd.strValue;
|
|
|
|
|
m_baseMp[rd.nameKey]->SetValue(rd.strValue);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if (rd.handleType == DEL) {
|
|
|
|
|
if (mFavoriteMap.find(rd.nameKey) != mFavoriteMap.end()) {
|
|
|
|
|
mFavoriteMap.erase(rd.nameKey);
|
|
|
|
|
DelMp(rd.nameKey);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
SendToClients(FAVORITECFGPARAM); //客户端更新后在发送给客户端
|
|
|
|
|
}
|
|
|
|
|
|
2024-03-19 17:45:12 +08:00
|
|
|
|
string FavoriteCfg::CONFIG_NAME ="Favorite";
|