2012-01-21 21:57:41 +01:00
|
|
|
#ifndef CCACHE
|
|
|
|
#define CCACHE
|
|
|
|
|
|
|
|
#include <sys/types.h>
|
|
|
|
#include <ogcsys.h>
|
|
|
|
#include <fstream>
|
2012-05-06 14:03:43 +02:00
|
|
|
#include <vector>
|
2012-08-05 15:48:15 +02:00
|
|
|
#include "loader/disc.h"
|
2012-01-21 21:57:41 +01:00
|
|
|
|
2012-12-08 17:17:35 +01:00
|
|
|
//#include "gecko.hpp"
|
2012-01-21 21:57:41 +01:00
|
|
|
using namespace std;
|
|
|
|
|
|
|
|
const char io[4][5] = {
|
|
|
|
"wb",
|
|
|
|
"rb",
|
|
|
|
"ab",
|
|
|
|
"wb",
|
|
|
|
};
|
|
|
|
|
|
|
|
enum CMode
|
|
|
|
{
|
|
|
|
SAVE,
|
|
|
|
LOAD,
|
|
|
|
ADD,
|
|
|
|
REMOVE
|
|
|
|
};
|
|
|
|
|
|
|
|
class CCache
|
|
|
|
{
|
|
|
|
public:
|
2012-08-16 16:09:02 +02:00
|
|
|
CCache(dir_discHdr &tmp, string path, u32 index, CMode mode); /* Load/Save One */
|
|
|
|
CCache(vector<dir_discHdr> &list, string path, CMode mode); /* Load/Save All */
|
|
|
|
CCache(vector<dir_discHdr> &list, string path, dir_discHdr tmp, CMode mode); /* Add One */
|
|
|
|
CCache(vector<dir_discHdr> &list, string path, u32 index, CMode mode); /* Remove One */
|
2012-01-21 21:57:41 +01:00
|
|
|
~CCache();
|
|
|
|
private:
|
2012-08-16 16:09:02 +02:00
|
|
|
void SaveAll(vector<dir_discHdr> list);
|
|
|
|
void SaveOne(dir_discHdr tmp, u32 index);
|
|
|
|
void LoadAll(vector<dir_discHdr> &list);
|
|
|
|
void LoadOne(dir_discHdr &tmp, u32 index);
|
2012-01-21 21:57:41 +01:00
|
|
|
|
2012-08-16 16:09:02 +02:00
|
|
|
void AddOne(vector<dir_discHdr> &list, dir_discHdr tmp);
|
|
|
|
void RemoveOne(vector<dir_discHdr> &list, u32 index);
|
2012-01-21 21:57:41 +01:00
|
|
|
|
|
|
|
FILE *cache;
|
|
|
|
string filename;
|
|
|
|
};
|
|
|
|
#endif
|