You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tubemq.apache.org by gx...@apache.org on 2020/09/15 11:46:32 UTC
[incubator-tubemq] 16/50: [TUBEMQ-263] Create C/C++ ini file read
utils [addendum] (#185)
This is an automated email from the ASF dual-hosted git repository.
gxcheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-tubemq.git
commit ebf8d48034c98b410fcac29bfdc7974847c3ea0f
Author: gosonzhang <46...@qq.com>
AuthorDate: Sun Jul 5 12:05:32 2020 +0000
[TUBEMQ-263] Create C/C++ ini file read utils [addendum] (#185)
Co-authored-by: gosonzhang <go...@tencent.com>
---
tubemq-client-twins/tubemq-client-cpp/inc/file_ini.h | 2 ++
tubemq-client-twins/tubemq-client-cpp/inc/utils.h | 2 ++
tubemq-client-twins/tubemq-client-cpp/src/file_ini.cc | 17 ++++++++++++++++-
tubemq-client-twins/tubemq-client-cpp/src/utils.cc | 13 +++++++++++++
4 files changed, 33 insertions(+), 1 deletion(-)
diff --git a/tubemq-client-twins/tubemq-client-cpp/inc/file_ini.h b/tubemq-client-twins/tubemq-client-cpp/inc/file_ini.h
index ecc7f1f..cab7f84 100644
--- a/tubemq-client-twins/tubemq-client-cpp/inc/file_ini.h
+++ b/tubemq-client-twins/tubemq-client-cpp/inc/file_ini.h
@@ -34,6 +34,8 @@ class Fileini {
bool Loadini(string& err_info, const string& file_name);
bool GetValue(string& err_info, const string& sector,
const string& key, string& value, const string& def);
+ bool GetValue(string& err_info, const string& sector,
+ const string& key, int& value, const int def);
private:
bool init_flag_;
diff --git a/tubemq-client-twins/tubemq-client-cpp/inc/utils.h b/tubemq-client-twins/tubemq-client-cpp/inc/utils.h
index de39683..0709bb8 100644
--- a/tubemq-client-twins/tubemq-client-cpp/inc/utils.h
+++ b/tubemq-client-twins/tubemq-client-cpp/inc/utils.h
@@ -47,6 +47,8 @@ class Utils {
const string& group_name, string& tgt_group_name);
static bool ValidFilterItem(string& err_info,
const string& src_filteritem, string& tgt_filteritem);
+ static string int2str(int data);
+ static string long2str(long data);
static long GetCurrentTimeMillis();
};
diff --git a/tubemq-client-twins/tubemq-client-cpp/src/file_ini.cc b/tubemq-client-twins/tubemq-client-cpp/src/file_ini.cc
index 84a847f..822b803 100644
--- a/tubemq-client-twins/tubemq-client-cpp/src/file_ini.cc
+++ b/tubemq-client-twins/tubemq-client-cpp/src/file_ini.cc
@@ -19,6 +19,7 @@
#include <fstream>
#include <sstream>
+#include <stdlib.h>
#include "utils.h"
#include "file_ini.h"
#include "const_config.h"
@@ -79,7 +80,7 @@ bool Fileini::Loadini(string& err_info, const string& file_name) {
continue;
}
key = line_str.substr(0, equal_pos);
- value = line_str.substr(equal_pos + (delimiter::kDelimiterEqual).size(), line_str.size() - 1);
+ value = line_str.substr(equal_pos + (delimiter::kDelimiterEqual).size(), line_str.size());
key = Utils::Trim(key);
value = Utils::Trim(value);
// get data from file to memory
@@ -113,6 +114,7 @@ bool Fileini::GetValue(string& err_info, const string& sector,
return false;
}
err_info = "Ok";
+ value.clear();
// search key's value in sector
map<string, map<string, string> >::iterator it_sec;
map<string, string>::iterator it_keyval;
@@ -130,6 +132,19 @@ bool Fileini::GetValue(string& err_info, const string& sector,
return true;
}
+bool Fileini::GetValue(string& err_info, const string& sector,
+ const string& key, int& value, const int def) {
+ string val_str;
+ string def_str = Utils::int2str(def);
+ bool result = GetValue(err_info, sector, key, val_str, def_str);
+ if (!result) {
+ return result;
+ }
+ value = atoi(val_str.c_str());
+ return true;
+}
+
+
}
diff --git a/tubemq-client-twins/tubemq-client-cpp/src/utils.cc b/tubemq-client-twins/tubemq-client-cpp/src/utils.cc
index 9ddd3b0..cd60982 100644
--- a/tubemq-client-twins/tubemq-client-cpp/src/utils.cc
+++ b/tubemq-client-twins/tubemq-client-cpp/src/utils.cc
@@ -239,6 +239,19 @@ bool Utils::ValidFilterItem(string& err_info,
}
+string Utils::int2str(int data) {
+ stringstream ss;
+ ss<<data;
+ return ss.str();
+}
+
+string Utils::long2str(long data) {
+ stringstream ss;
+ ss<<data;
+ return ss.str();
+}
+
+
long Utils::GetCurrentTimeMillis() {
struct timeval tv;
gettimeofday(&tv,NULL);