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