00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef ANNCHIENTA_CACHEMANAGER_H
00019 #define ANNCHIENTA_CACHEMANAGER_H
00020
00021 #include <list>
00022 #include <cstdio>
00023 #include <cstring>
00024 #include "Engine.h"
00025 #include "Cacheable.h"
00026
00027 namespace Annchienta
00028 {
00029
00030 class Surface;
00031 class Mask;
00032 class Sound;
00033
00038 class CacheManager
00039 {
00040 private:
00041 std::list< Cacheable* > cacheables;
00042
00043 public:
00044 #ifndef SWIG
00045 CacheManager();
00046 ~CacheManager();
00047 #endif
00048
00056 Cacheable *getCacheable( const char *fileName, CacheableType cacheableType );
00057
00063 Surface *getSurface( const char *fileName );
00064
00070 Mask *getMask( const char *fileName );
00071
00077 Sound *getSound( const char *fileName );
00078
00082 void clear();
00083
00084 };
00085
00088 CacheManager *getCacheManager();
00089
00090 };
00091
00092 #endif