Advertisement
BagaevDanil

Untitled

Jun 12th, 2023
33
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.25 KB | None | 0 0
  1. #ifndef SEAPROJECT_EKN_STORAGEMANAGER
  2. #define SEAPROJECT_EKN_STORAGEMANAGER
  3.  
  4. #include <QString>
  5. #include <QFile>
  6. #include <QTextStream>
  7. #include <QHash>
  8. #include <QPair>
  9.  
  10. namespace EKn
  11. {
  12. // Инфомация о состоянии оборудования, помещений итд
  13. struct StorageManagerData
  14. {
  15. QString id;
  16. QString propertyName;
  17. QString value;
  18. };
  19.  
  20. /* класс сохраняет текущее состояние оборудования, помещений итд
  21. Ведет логи об изменении состояний
  22. */
  23. class StorageManager
  24. {
  25. public:
  26. static StorageManager& instance();
  27.  
  28. enum Modifier { DB, User };
  29.  
  30. void store(QString id, QString property, QString value, Modifier modifier);
  31. void log(QString id, QString property, QString value, QString comment = QString());
  32. void storelog(QString id, QString property, QString value, QString comment = QString());
  33. QList<StorageManagerData> updateInfo() const;
  34. void clearUpdatedList();
  35.  
  36. private:
  37. StorageManager();
  38.  
  39. QFile _stateLogFile;
  40. QTextStream _stateLog;
  41. QFile _stateFile;
  42. QTextStream _stateStorage;
  43.  
  44. QHash<QPair<QString, QString>, QPair<QString, Modifier> > _stateCache;
  45. };
  46. }
  47.  
  48. #endif
  49.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement