GrpcPrint/PrintS/Config/bean/FavoriteCfg.cpp

70 lines
1.7 KiB
C++
Raw Normal View History

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";