Guest User

Untitled

a guest
May 21st, 2018
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.57 KB | None | 0 0
  1. #include "Core/ConfigManager.hpp"
  2.  
  3. #include <iostream>
  4. #include <algorithm>
  5. #include <sstream>
  6.  
  7. int ConfigManager::GetInt(std::string key) const
  8. {
  9.     std::stringstream ss;
  10.     std::stringstream keyStream;
  11.     int val = -1;
  12.  
  13.     std::transform(key.begin(), key.end(), key.begin(), ::toupper);
  14.     std::map<std::string, std::string>::const_iterator iter = m_properties.begin();
  15.  
  16.     keyStream << key << ".INT";
  17.  
  18.     for (; iter != m_properties.end(); ++iter)
  19.     {
  20.         if (iter->first == keyStream.str())
  21.         {
  22.             ss << iter->second;
  23.             ss >> val;
  24.             return val;
  25.         }
  26.     }
  27.  
  28.     std::cerr << "Key not found!!!";
  29.     return val;
  30. }
  31.  
  32. void ConfigManager::SetInt(std::string key, int val)
  33. {
  34.     std::stringstream ss;
  35.     std::stringstream keyStream;
  36.     ss << val;
  37.  
  38.     std::transform(key.begin(), key.end(), key.begin(), ::toupper);
  39.     std::map<std::string, std::string>::iterator iter = m_properties.begin();
  40.  
  41.     keyStream << key << ".INT";
  42.     for (; iter != m_properties.end(); ++iter)
  43.     {
  44.         if (iter->first == keyStream.str())
  45.         {
  46.             iter->second = ss.str();
  47.             return;
  48.         }
  49.     }
  50.  
  51.     m_properties.insert(std::pair<std::string, std::string>(keyStream.str(), ss.str()));
  52. }
  53.  
  54. bool ConfigManager::GetBool(std::string key) const
  55. {
  56.     std::stringstream ss;
  57.     std::stringstream keyStream;
  58.     int val = false;
  59.  
  60.     std::transform(key.begin(), key.end(), key.begin(), ::toupper);
  61.     std::map<std::string, std::string>::const_iterator iter = m_properties.begin();
  62.     keyStream << key << ".BOOL";
  63.     for (; iter != m_properties.end(); ++iter)
  64.     {
  65.         if (iter->first == keyStream.str())
  66.         {
  67.             ss << iter->second;
  68.             ss >> val;
  69.             return val != 0;
  70.         }
  71.     }
  72.  
  73.     return false;
  74. }
  75.  
  76. void ConfigManager::SetBool(std::string key, bool val)
  77. {
  78.     std::stringstream ss;
  79.     std::stringstream keyStream;
  80.     ss << val;
  81.  
  82.     std::transform(key.begin(), key.end(), key.begin(), ::toupper);
  83.     std::map<std::string, std::string>::iterator iter = m_properties.begin();
  84.     keyStream << key << ".BOOL";
  85.  
  86.     for (; iter != m_properties.end(); ++iter)
  87.     {
  88.         if (iter->first == keyStream.str())
  89.         {
  90.             iter->second = ss.str();
  91.             return;
  92.         }
  93.     }
  94.  
  95.     m_properties.insert(std::pair<std::string, std::string>(keyStream.str(), ss.str()));
  96. }
  97.  
  98. float ConfigManager::GetFloat(std::string key) const
  99. {
  100.     std::stringstream ss;
  101.     std::stringstream keyStream;
  102.     float val;
  103.  
  104.     std::transform(key.begin(), key.end(), key.begin(), ::toupper);
  105.     std::map<std::string, std::string>::const_iterator iter = m_properties.begin();
  106.     keyStream << key << ".FLOAT";
  107.     for (; iter != m_properties.end(); ++iter)
  108.     {
  109.         if (iter->first == keyStream.str())
  110.         {
  111.             ss << iter->second;
  112.             ss >> val;
  113.             return val;
  114.         }
  115.     }
  116.  
  117.     return -1.f;
  118. }
  119.  
  120. void ConfigManager::SetFloat(std::string key, float val)
  121. {
  122.     std::stringstream ss;
  123.     std::stringstream keyStream;
  124.     ss << val;
  125.  
  126.     std::transform(key.begin(), key.end(), key.begin(), ::toupper);
  127.     std::map<std::string, std::string>::iterator iter = m_properties.begin();
  128.     keyStream << key << ".FLOAT";
  129.  
  130.     for (; iter != m_properties.end(); ++iter)
  131.     {
  132.         if (iter->first == keyStream.str())
  133.         {
  134.             iter->second = ss.str();
  135.             return;
  136.         }
  137.     }
  138.  
  139.     m_properties.insert(std::pair<std::string, std::string>(keyStream.str(), ss.str()));
  140. }
  141.  
  142. std::string ConfigManager::GetString(std::string key) const
  143. {
  144.     std::stringstream keyStream;
  145.     std::transform(key.begin(), key.end(), key.begin(), ::toupper);
  146.     std::map<std::string, std::string>::const_iterator iter = m_properties.begin();
  147.     keyStream << key << ".STRING";
  148.  
  149.     for (; iter != m_properties.end(); ++iter)
  150.     {
  151.         if (iter->first == keyStream.str())
  152.             return iter->second;
  153.     }
  154.  
  155.     return std::string("");
  156. }
  157.  
  158. void ConfigManager::SetString(std::string key, std::string val)
  159. {
  160.     std::stringstream keyStream;
  161.  
  162.     std::transform(key.begin(), key.end(), key.begin(), ::toupper);
  163.     std::map<std::string, std::string>::iterator iter = m_properties.begin();
  164.  
  165.     keyStream << key << ".STRING";
  166.  
  167.     for (; iter != m_properties.end(); ++iter)
  168.     {
  169.         if (iter->first == keyStream.str())
  170.         {
  171.             iter->second = val;
  172.             return;
  173.         }
  174.     }
  175.  
  176.     m_properties.insert(std::pair<std::string, std::string>(keyStream.str(), val));
  177. }
Add Comment
Please, Sign In to add comment