00001
00006 #ifndef USER_H_
00007 #define USER_H_
00008
00009 #include <string>
00010 #include <map>
00011
00012 #include "Logger.h"
00013 #include "Cache.h"
00014 #include "Space.h"
00015
00016 using namespace std;
00017
00018
00019
00020
00021 class Space;
00022 class Cache;
00023
00027 class User {
00028
00029 private:
00030 Cache * cache;
00031 string login;
00032 unsigned quota;
00033 unsigned declaredQuota;
00034 map<string, Space *> spaceHashMap;
00035
00036 public:
00044 User(Cache* cache, const string& login, unsigned quota);
00045
00049 ~User();
00050
00063 Space * createSpace(const string& name, unsigned softQuota, unsigned hardQuota);
00064
00073 Space * loadSpace(const string& name);
00074
00082 Space * selectSpace(const string& name);
00083
00084 };
00085
00086 #endif