|
@@ -6,14 +6,13 @@ namespace aFuncore {
|
|
|
* @param str 文本
|
|
|
* @return 是否成功
|
|
|
*/
|
|
|
- bool EnvVarSpace::findString(const std::string &name, std::string &str) const{
|
|
|
- try {
|
|
|
- auto &env_var = var.at(name);
|
|
|
- str = env_var.str;
|
|
|
- return true;
|
|
|
- } catch (std::out_of_range &) {
|
|
|
+ bool EnvVarSpace::findString(const std::string &name, std::string &str) {
|
|
|
+ std::unique_lock<std::mutex> mut(lock);
|
|
|
+ auto env_var = var.find(name);
|
|
|
+ if (env_var == var.end())
|
|
|
return false;
|
|
|
- }
|
|
|
+ str = env_var->second.str;
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -22,14 +21,13 @@ namespace aFuncore {
|
|
|
* @param num 文本
|
|
|
* @return 是否成功
|
|
|
*/
|
|
|
- bool EnvVarSpace::findNumber(const std::string &name, int32_t &num) const{
|
|
|
- try {
|
|
|
- auto &env_var = var.at(name);
|
|
|
- num = env_var.num;
|
|
|
- return true;
|
|
|
- } catch (std::out_of_range &) {
|
|
|
+ bool EnvVarSpace::findNumber(const std::string &name, int32_t &num) {
|
|
|
+ std::unique_lock<std::mutex> mut(lock);
|
|
|
+ auto env_var = var.find(name);
|
|
|
+ if (env_var == var.end())
|
|
|
return false;
|
|
|
- }
|
|
|
+ num = env_var->second.num;
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -38,12 +36,12 @@ namespace aFuncore {
|
|
|
* @param str 文本
|
|
|
*/
|
|
|
void EnvVarSpace::setString(const std::string &name, const std::string &str){
|
|
|
- try {
|
|
|
- auto &env_var = var.at(name);
|
|
|
- env_var.str = str;
|
|
|
- } catch (std::out_of_range &) {
|
|
|
+ std::unique_lock<std::mutex> mut(lock);
|
|
|
+ auto env_var = var.find(name);
|
|
|
+ if (env_var == var.end())
|
|
|
var.insert({name, {str, 0}});
|
|
|
- }
|
|
|
+ else
|
|
|
+ env_var->second.str = str;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -52,12 +50,12 @@ namespace aFuncore {
|
|
|
* @param num 数值
|
|
|
*/
|
|
|
void EnvVarSpace::setNumber(const std::string &name, int32_t num){
|
|
|
- try {
|
|
|
- auto &env_var = var.at(name);
|
|
|
- env_var.num = num;
|
|
|
- } catch (std::out_of_range &) {
|
|
|
+ std::unique_lock<std::mutex> mut(lock);
|
|
|
+ auto env_var = var.find(name);
|
|
|
+ if (env_var == var.end())
|
|
|
var.insert({name, {"", num}});
|
|
|
- }
|
|
|
+ else
|
|
|
+ env_var->second.num = num;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -66,12 +64,12 @@ namespace aFuncore {
|
|
|
* @param str 文本
|
|
|
*/
|
|
|
void EnvVarSpace::addString(const std::string &name, const std::string &str){
|
|
|
- try {
|
|
|
- auto &env_var = var.at(name);
|
|
|
- env_var.str += str;
|
|
|
- } catch (std::out_of_range &) {
|
|
|
+ std::unique_lock<std::mutex> mut(lock);
|
|
|
+ auto env_var = var.find(name);
|
|
|
+ if (env_var == var.end())
|
|
|
var.insert({name, {str, 0}});
|
|
|
- }
|
|
|
+ else
|
|
|
+ env_var->second.str += str;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -80,11 +78,11 @@ namespace aFuncore {
|
|
|
* @param num 数值
|
|
|
*/
|
|
|
void EnvVarSpace::addNumber(const std::string &name, int32_t num){
|
|
|
- try {
|
|
|
- auto &env_var = var.at(name);
|
|
|
- env_var.num += num;
|
|
|
- } catch (std::out_of_range &) {
|
|
|
+ std::unique_lock<std::mutex> mut(lock);
|
|
|
+ auto env_var = var.find(name);
|
|
|
+ if (env_var == var.end())
|
|
|
var.insert({name, {"", num}});
|
|
|
- }
|
|
|
+ else
|
|
|
+ env_var->second.num += num;
|
|
|
}
|
|
|
}
|