mirror of
https://github.com/alliedmodders/amxmodx.git
synced 2024-12-25 22:35:37 +03:00
54 lines
972 B
C
54 lines
972 B
C
|
#ifndef _INCLUDE_NVAULT_H
|
||
|
#define _INCLUDE_NVAULT_H
|
||
|
|
||
|
#include "sdk/CString.h"
|
||
|
#include "hash.h"
|
||
|
|
||
|
class Journal
|
||
|
{
|
||
|
public:
|
||
|
enum JournalOp
|
||
|
{
|
||
|
Journal_Store,
|
||
|
Journal_Erase,
|
||
|
Journal_Clear,
|
||
|
Journal_Prune
|
||
|
};
|
||
|
public:
|
||
|
Journal(const char *file);
|
||
|
public:
|
||
|
bool Replay(size_t &files, size_t &ops);
|
||
|
void Clear();
|
||
|
public:
|
||
|
void Begin(const char *name, JournalOp jop);
|
||
|
void WriteByte(uint8_t num);
|
||
|
void WriteInt(uint32_t num);
|
||
|
void WriteTime(time_t n);
|
||
|
void WriteString(const char *str);
|
||
|
size_t End();
|
||
|
private:
|
||
|
String m_File;
|
||
|
FILE *m_Fp;
|
||
|
size_t m_WriteSize;
|
||
|
};
|
||
|
|
||
|
class nVault
|
||
|
{
|
||
|
public:
|
||
|
nVault(const char *name);
|
||
|
public:
|
||
|
bool WriteToFile();
|
||
|
bool ReadFromFile();
|
||
|
public:
|
||
|
void Store(const char *key, const char *value, bool temporary=true);
|
||
|
size_t Prune(time_t begin, time_t end, bool all=false);
|
||
|
HashTable::htNode *Find(const char *key);
|
||
|
bool KeyExists(const char *key);
|
||
|
void Clear();
|
||
|
private:
|
||
|
String m_File;
|
||
|
HashTable *m_Vault;
|
||
|
};
|
||
|
|
||
|
#endif //_INCLUDE_NVAULT_H
|