#include <string>
#include <iostream>
#include <fstream>
#include <vector>
#include <map>
#include <math.h>


using namespace std;

#include "main.h"
#include "cacheSet.h"


class LRU_page_queue {
private:
	int size;
	cacheBlock *block;
	int ID;
	int associativity;
	int blockSize;

public:
	cacheSet();
	cacheSet(int newAssociativity);
	cacheSet(int newAssociativity, int newID);
	cacheSet(int newAssociativity, int newBlockSize, int newID);
	~cacheSet();

	void setID(int newID);
	int getID(void);

	void setAssociativity(int newAssociativity);
	void setBlockSize(int newBlockSize);
	void setCacheSize(int newCacheSize);

	int getBlockSize(void);
	int getAssociativity(void);

	cacheBlock *getBlock(int blockNum);

	void updateLRU(int wayNumberToPromote);
};