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