Snake/SnakeServer/Server/sqldbcashe.h

50 lines
1.3 KiB
C
Raw Normal View History

2019-04-16 18:01:55 +03:00
#ifndef SQLDBCASHE_H
#define SQLDBCASHE_H
#include "sqldbwriter.h"
#include <QMap>
#include <QHash>
#include <QSet>
#include <QVariantMap>
class SqlDBCashe : private SqlDBWriter
{
private:
qint64 lastUpdateTime = 0;
QMap <int, QVariantMap> items;
QMap <int, QVariantMap> players;
QHash <int, QSet<int>> owners;
int generateIdForItem() const;
int generateIdForPalyer() const;
2019-04-17 15:16:11 +03:00
bool checkPlayer(int id) override;
bool checkItem(int idItem, int idOwner = -1) override;
2019-04-16 18:01:55 +03:00
void globalUpdateDataBasePrivate(qint64 currentTime);
void globalUpdateDataBase(bool force = false);
2019-04-17 15:16:11 +03:00
bool itemIsFreeFrom(int item) const override ;
2019-04-16 18:01:55 +03:00
public:
SqlDBCashe();
2019-04-17 15:16:11 +03:00
~SqlDBCashe() override;
2019-04-16 18:01:55 +03:00
2019-04-17 15:16:11 +03:00
bool initDb(const QString &sql = DEFAULT_DB_NAME,
const QString &path = DEFAULT_DB_PATH) override;
2019-04-16 18:01:55 +03:00
2019-04-17 15:16:11 +03:00
bool getItem(int id, QVariantMap &res) override;
int saveItem(QVariantMap &item) override;
bool getPlayer(int id, QVariantMap &res) override;
int savePlayer(QVariantMap &player) override;
2019-04-16 18:01:55 +03:00
bool giveAwayItem(int player, int item);
bool getItem(int player, int item, bool check = true);
bool moveItem(int owner, int receiver, int item);
2019-04-17 15:16:11 +03:00
bool getAllItemsOfPalyer(int player, QSet<int>& items) override;
2019-04-16 18:01:55 +03:00
};
#endif // SQLDBCASHE_H