// Copyright 2019-2024 The Hush developers // Released under the GPLv3 #ifndef CHATDATASTORE_H #define CHATDATASTORE_H #include "../chatmodel.h" using json = nlohmann::json; class ChatDataStore { private: static bool instanced; static ChatDataStore* instance; Ui::MainWindow* ui; MainWindow* main; std::map data; ChatDataStore() { } public: static ChatDataStore* getInstance(); void clear(); void setData(QString key, ChatItem value); ChatItem getData(QString key); std::map getAllRawChatItems(); std::map getAllNewContactRequests(); std::map getAllCashMemosOutgoing(); std::map getAllCashMemosIncoming(); std::map getAllOldContactRequests(); std::map getAllMemos(); QString getPassword(); QString getSendZaddr(); void setSendZaddr(QString Password); QString _password; void setPassword(QString zaddr); QString _zaddr; QString dump(); ~ChatDataStore() { ChatDataStore::instanced = false; ChatDataStore::instance = nullptr; } }; #endif