DataManager.cpp.autosave 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. #include "DataManager.h"
  2. #include <QTextCodec>
  3. #include <QFile>
  4. #include <QApplication>
  5. DataManager* DataManager::g_GlobalSingle = NULL;
  6. std::mutex DataManager::m_Mutex;
  7. DataManager::DataManager(QObject* parent)
  8. : QObject(parent)
  9. {
  10. InitTestFileData();
  11. }
  12. DataManager& DataManager::instance()
  13. {
  14. if (g_GlobalSingle == NULL)
  15. {
  16. std::unique_lock<std::mutex> lock(m_Mutex);
  17. if (g_GlobalSingle == NULL)
  18. {
  19. g_GlobalSingle = new (std::nothrow) DataManager();
  20. }
  21. }
  22. return *g_GlobalSingle;
  23. }
  24. void DataManager::destroyInstance()
  25. {
  26. std::unique_lock<std::mutex> lock(m_Mutex);
  27. if (g_GlobalSingle)
  28. {
  29. delete g_GlobalSingle;
  30. g_GlobalSingle = NULL;
  31. }
  32. }
  33. std::string DataManager::string_To_UTF8(const std::string& str)
  34. {
  35. QTextCodec* codec = QTextCodec::codecForName("GBK"); // 根据实际情况调整源编码
  36. if (!codec) {
  37. return str;
  38. }
  39. QString unicodeStr = codec->toUnicode(str.c_str());
  40. QByteArray utf8Data = unicodeStr.toUtf8();
  41. return std::string(utf8Data.constData(), utf8Data.length());
  42. }
  43. std::string DataManager::UTF8_to_string(const std::string& str)
  44. {
  45. QTextCodec* utf8Codec = QTextCodec::codecForName("UTF-8");
  46. if (!utf8Codec) {
  47. return str;
  48. }
  49. QString unicodeStr = utf8Codec->toUnicode(str.c_str());
  50. QTextCodec* localCodec = QTextCodec::codecForName("GBK"); // 根据实际情况调整目标编码
  51. if (!localCodec) {
  52. return str;
  53. }
  54. QByteArray localData = localCodec->fromUnicode(unicodeStr);
  55. return std::string(localData.constData(), localData.length());
  56. }
  57. bool DataManager::JsonToStyled(const std::string& str, std::string& strRetrun)
  58. {
  59. Json::Reader reader;
  60. Json::Value root;
  61. if (reader.parse(str, root))
  62. {
  63. return JsonToStyled(root, strRetrun);
  64. }
  65. else
  66. {
  67. return false;
  68. }
  69. }
  70. bool DataManager::JsonToStyled(Json::Value& jValue, std::string& strRetrun)
  71. {
  72. Json::StyledWriter jWriter;
  73. if (jValue.isNull())
  74. {
  75. return false;
  76. }
  77. else
  78. {
  79. strRetrun = jWriter.write(jValue);
  80. return true;
  81. }
  82. }
  83. void DataManager::AddHttpLog(LogJson& pNewLog)
  84. {
  85. m_vectorLogJson.push_back(pNewLog);
  86. emit dataChanged(HttpLogList);
  87. }
  88. void DataManager::ClearHttpLog()
  89. {
  90. m_vectorLogJson.clear();
  91. emit dataChanged(HttpLogList);
  92. }
  93. void DataManager::InitTestFileData()
  94. {
  95. QString strPath=QApplication::applicationDirPath()+"/allData.txt";
  96. QFile pFile(strPath);
  97. if(pFile.open(QIODevice::ReadOnly|QIODevice::Text))
  98. {
  99. strAllDataFile=pFile.readAll();
  100. };
  101. }