parent
							
								
									61d7305766
								
							
						
					
					
						commit
						06b177887e
					
				| @ -0,0 +1,33 @@ | |||||||
|  | #include "load.h" | ||||||
|  | 
 | ||||||
|  | namespace Lib_Load{ | ||||||
|  |     void Load::set_sections(vector<string> vec_sections){ | ||||||
|  |         this->vec_sections = vec_sections; | ||||||
|  |     } | ||||||
|  |     map<string, string> Load::get_load_data(string str_flag_load) { | ||||||
|  |         string cmd = ""; | ||||||
|  |         string response = ""; | ||||||
|  |         string key = ""; | ||||||
|  |         string value = ""; | ||||||
|  |         map<string, string> map_data; | ||||||
|  |         for (const string §ion: this->vec_sections) { | ||||||
|  |             cmd = "ubconfig  --default --source " + str_flag_load + " get " + section; | ||||||
|  |             response = process.call_all_sections(cmd); | ||||||
|  |             vector<string> vec_str_key_value = Utils::split(response, '\n'); | ||||||
|  |             for (const string ¶m: vec_str_key_value) { | ||||||
|  |                 if ((param.find("(null)") == std::string::npos) && (param.length() != 0 )) {  | ||||||
|  |                     if (param.find("=") != std::string::npos) { | ||||||
|  |                         size_t index = param.find("="); | ||||||
|  |                         key = param.substr(0, index); | ||||||
|  |                         value = param.substr(index + 1, param.length()); | ||||||
|  |                         map_data[key] = value; | ||||||
|  |                         cout << key << "=" << value << endl; | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         return map_data; | ||||||
|  |     } | ||||||
|  |      | ||||||
|  | } | ||||||
| @ -0,0 +1,20 @@ | |||||||
|  | #ifndef LOAD_H | ||||||
|  | #define LOAD_H | ||||||
|  | 
 | ||||||
|  | #include "my_process.h" | ||||||
|  | namespace Lib_Load{ | ||||||
|  |     class Load { | ||||||
|  |          | ||||||
|  |     private: | ||||||
|  |         vector<string> vec_sections; | ||||||
|  |         My_Process::My_Process_call process = My_Process::My_Process_call(); | ||||||
|  |     public: | ||||||
|  |         Load(/* args */); | ||||||
|  |         ~Load(); | ||||||
|  |         void set_sections(vector<string> vec_sections); | ||||||
|  |         map<string, string> get_load_data(string str_flag_load); | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |      | ||||||
|  | } | ||||||
|  | #endif | ||||||
| @ -0,0 +1,73 @@ | |||||||
|  | #include "my_process.h" | ||||||
|  | #include "util.h" | ||||||
|  | 
 | ||||||
|  | namespace My_Process{  | ||||||
|  | 
 | ||||||
|  | struct Utils::Result<string> My_Process_call::call(string cmd) { | ||||||
|  |     this->i_error_old = this->i_error; | ||||||
|  |     struct Utils::Result<string> obj_result; | ||||||
|  |     string response = Utils::call(cmd); | ||||||
|  |     obj_result.response = response; | ||||||
|  |     if ((response.find("(null)") == std::string::npos) && (response.length() != 0 )) { | ||||||
|  |         if (response.find("=") != std::string::npos) { | ||||||
|  |             if (response.find("\n") != std::string::npos) { | ||||||
|  |                 response = response.substr(response.find("=")+1,response.length()); | ||||||
|  |                 response = response.substr(0,response.find("\n")); | ||||||
|  |                 obj_result.response = response; | ||||||
|  |                 obj_result.error = 0; | ||||||
|  |             } | ||||||
|  |             else { | ||||||
|  |                 obj_result.error = 1; | ||||||
|  |                 this->i_error += 1; | ||||||
|  |                 this->log_mess_error(cmd); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         else { | ||||||
|  |             obj_result.error = 2; | ||||||
|  |             this->i_error += 1; | ||||||
|  |             str_cmd_error = cmd; | ||||||
|  |             this->log_mess_error(cmd); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |     else { | ||||||
|  |         obj_result.error = 3; | ||||||
|  |         this->i_error += 1; | ||||||
|  |         str_cmd_error = cmd; | ||||||
|  |         this->log_mess_error(cmd); | ||||||
|  |     } | ||||||
|  |     return obj_result; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | int My_Process::get_count_error() { | ||||||
|  |     return this->i_error; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void My_Process::set_back_count_error() { | ||||||
|  |     this->i_error = this->i_error_old; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void My_Process_system::call(string cmd, string thread_str = "") { | ||||||
|  |     string cmd_new = cmd + " " + thread_str; | ||||||
|  |     int response_cmd = system(cmd_new.c_str()); | ||||||
|  |     if (response_cmd != 0) { | ||||||
|  |         this->i_error += 1; | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void My_Process::set_count_error(int count_error) { | ||||||
|  |     this->i_error = count_error; | ||||||
|  |     this->str_cmd_error = ""; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void My_Process::log_mess_error(string cmd) { | ||||||
|  |      | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | string My_Process::get_cmd_error() { | ||||||
|  |     return this->str_cmd_error; | ||||||
|  | } | ||||||
|  | string My_Process_call::call_all_sections(string cmd) { | ||||||
|  |     string response = Utils::call(cmd); | ||||||
|  |     return response; | ||||||
|  | } | ||||||
|  | } | ||||||
| @ -0,0 +1,34 @@ | |||||||
|  | #ifndef SAVE_H | ||||||
|  | #define SAVE_H | ||||||
|  | 
 | ||||||
|  | #include "util.h" | ||||||
|  | namespace My_Process{  | ||||||
|  | class My_Process { | ||||||
|  |     public: | ||||||
|  |     int i_error = 0; | ||||||
|  |     int i_error_old = 0; | ||||||
|  |     string str_cmd_error = ""; | ||||||
|  |     int get_count_error(); | ||||||
|  |     void set_count_error(int count_error); | ||||||
|  |     void set_back_count_error(); | ||||||
|  |     void log_mess_error(string cmd); | ||||||
|  |     string get_cmd_error(); | ||||||
|  | }; | ||||||
|  |      | ||||||
|  | 
 | ||||||
|  | class My_Process_call: My_Process { | ||||||
|  |     public:  | ||||||
|  |         My_Process_call(); | ||||||
|  |         struct Utils::Result<string> call(string cmd); | ||||||
|  |         string call_all_sections(string cmd); | ||||||
|  |      | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | class My_Process_system: My_Process { | ||||||
|  |     public: | ||||||
|  |         My_Process_system(); | ||||||
|  |         void call(string cmd, string thread_str); | ||||||
|  | 
 | ||||||
|  | }; | ||||||
|  | } | ||||||
|  | #endif | ||||||
| @ -1,10 +0,0 @@ | |||||||
| #include "process.h" |  | ||||||
| 
 |  | ||||||
| struct Result<string> Process_call::call(string cmd) {} |  | ||||||
| int Process::get_count_error() { |  | ||||||
|     return this->i_error; |  | ||||||
| } |  | ||||||
| void Process::set_count_error(int count_error) { |  | ||||||
|     this->i_error = count_error; |  | ||||||
| } |  | ||||||
| void Process_system::call(string cmd) {} |  | ||||||
| @ -1,22 +0,0 @@ | |||||||
| #include "util.h" |  | ||||||
| 
 |  | ||||||
| class Process { |  | ||||||
|     int i_error = 0; |  | ||||||
|     int i_error_old = 0; |  | ||||||
|     virtual int get_count_error() = 0; |  | ||||||
|     virtual void set_count_error(int count_error) = 0; |  | ||||||
| }; |  | ||||||
|      |  | ||||||
| 
 |  | ||||||
| class Process_call: Process { |  | ||||||
|     public:  |  | ||||||
|         Process_call(); |  | ||||||
|         struct Result<string> call(string cmd); |  | ||||||
|      |  | ||||||
| }; |  | ||||||
| class Process_system: Process { |  | ||||||
|     public: |  | ||||||
|         Process_system(); |  | ||||||
|         void call(string cmd); |  | ||||||
| 
 |  | ||||||
| }; |  | ||||||
| @ -0,0 +1,87 @@ | |||||||
|  | #include "save.h" | ||||||
|  | 
 | ||||||
|  | namespace Lib_save { | ||||||
|  | 
 | ||||||
|  | vector<string> Save::get_error() { | ||||||
|  |     return this->vec_errors; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | bool Save::get_state_save() { | ||||||
|  |     return this->flag_no_save; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void Save::set_data_local(std::map <string, string> &map_global) { | ||||||
|  |     this->map_global = &map_global; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void Save::set_data_local(std::map <string, string> &map_local) { | ||||||
|  |     this->map_local = &map_local; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void Save::set_data_local(std::map <string, string> &map_gui) { | ||||||
|  |     this->map_gui = &map_gui; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | bool Save::check_save(string flag_save, string key_name) { | ||||||
|  |     std::map <string, string>:: iterator iter_map_data; | ||||||
|  |     std::map <string, string>:: iterator iter_map_data_old; | ||||||
|  |     std::map <string, string> *map_data_old; | ||||||
|  |     if (flag_save == "system") { | ||||||
|  |         map_data_old = map_local; | ||||||
|  |     } | ||||||
|  |     else if (flag_save == "global") { | ||||||
|  |         map_data_old = map_global; | ||||||
|  |     } | ||||||
|  |     iter_map_data = (*map_gui).find(key_name); | ||||||
|  |     iter_map_data_old = (*map_data_old).find(key_name); | ||||||
|  |     if (iter_map_data_old == (*map_data_old).end() && iter_map_data != (*map_gui).end()) { | ||||||
|  |         return true; | ||||||
|  |     } | ||||||
|  |     else if (iter_map_data->second != iter_map_data_old->second) { | ||||||
|  |         return true; | ||||||
|  |     } | ||||||
|  |     else if (iter_map_data->second.length() == 0 && iter_map_data_old->second.length() == 0) { | ||||||
|  |         return false; | ||||||
|  |     } | ||||||
|  |     else if (iter_map_data->second == iter_map_data_old->second) { | ||||||
|  |         return false; | ||||||
|  |     } | ||||||
|  |     else { | ||||||
|  |         return true; | ||||||
|  |     } | ||||||
|  |     return true; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void Save::save(std::map <string, string> &map_gui, std::map <string, string> &map_temp,string sections, string str_flag_save) { | ||||||
|  |     string key = ""; | ||||||
|  |     string value = ""; | ||||||
|  |     string cmd = ""; | ||||||
|  |     string str_error = ""; | ||||||
|  |     this->flag_no_save = false; | ||||||
|  |     for (const auto &map_iter: map_gui) { | ||||||
|  |         key = map_iter.first; | ||||||
|  |         value = map_iter.second; | ||||||
|  |         if (this->check_save(str_flag_save, key) == true) { | ||||||
|  |             if (value.length() != 0) { | ||||||
|  |                 cmd = "ubconfig --target  " + str_flag_save + " set " + sections + " " + | ||||||
|  |                         key + "=\"" + value + "\""; | ||||||
|  |             } | ||||||
|  |             else if (value.length() == 0) { | ||||||
|  |                 cmd = "ubconfig --target  " + str_flag_save + " remove " + sections + " " + key; | ||||||
|  |             } | ||||||
|  |             else { | ||||||
|  |                 cmd = ""; | ||||||
|  |             } | ||||||
|  |             if (cmd.length() != 0) { | ||||||
|  |                 process.call(cmd, ""); | ||||||
|  |                 this->flag_no_save = true; | ||||||
|  |                 str_error = process.get_cmd_error(); | ||||||
|  |                 if (str_error.length() != 0) { | ||||||
|  |                     this->vec_errors.push_back(str_error); | ||||||
|  |                     str_error = ""; | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | } | ||||||
| @ -0,0 +1,27 @@ | |||||||
|  | #ifndef MY_PROCESS_H | ||||||
|  | #define MY_PROCESS_H | ||||||
|  | 
 | ||||||
|  | #include "my_process.h" | ||||||
|  | namespace Lib_save { | ||||||
|  | 
 | ||||||
|  | class Save { | ||||||
|  | private: | ||||||
|  |     std::map <string, string> *map_global; | ||||||
|  |     std::map <string, string> *map_local; | ||||||
|  |     std::map <string, string> *map_gui; | ||||||
|  |     vector<string> vec_errors; | ||||||
|  |     My_Process::My_Process_system process = My_Process::My_Process_system(); | ||||||
|  |     bool flag_no_save; | ||||||
|  | public: | ||||||
|  |     Save(/* args */); | ||||||
|  |     ~Save(); | ||||||
|  |     void set_data_local(std::map <string, string> &map_global); | ||||||
|  |     void set_data_local(std::map <string, string> &map_local); | ||||||
|  |     void set_data_local(std::map <string, string> &map_gui); | ||||||
|  |     bool check_save(string flag_save, string key_name); | ||||||
|  |     bool get_state_save(); | ||||||
|  |     void save(std::map <string, string> &map_gui, std::map <string, string> &map_temp,string sections, string str_flag_save) ; | ||||||
|  |     vector<string> get_error(); | ||||||
|  | }; | ||||||
|  | } | ||||||
|  | #endif | ||||||
					Loading…
					
					
				
		Reference in new issue
	
	