using System;␊ |
using System.Collections.Generic;␊ |
using System.Linq;␊ |
using System.Text;␊ |
␊ |
namespace Axios.Engine.Data␊ |
{␊ |
// Q. What is the point of this?␊ |
// A. This is not to cache textures loaded by content manager␊ |
// but other data/content that isn't. Use cases include:␊ |
// - Any graphics generated during runtime (such as dialogs)␊ |
// - Any data that is loaded in during run time (such as maps)␊ |
// Content manager performs it's own caching so anything loaded by it␊ |
// or the Gameservice - then attempted to load again will not be loaded␊ |
// again but rather a reference to it will be returned␊ |
// ************************************************␊ |
// DANGER WILL ROBINSON DANGER␊ |
// ************************************************␊ |
// Only store stuff here that you want during the FULL lifecycle of your game␊ |
// The cache is never cleared - so a reference will exist for the objects you leave␊ |
// You MAY clear the cache by using the clear method or unset␊ |
//␊ |
// You probably don't want this␊ |
// There is no cache...␊ |
// This is not the cache you are looking for...␊ |
//␊ |
public class Cache : Singleton<Cache>␊ |
{␊ |
private Dictionary<string, object> _cache;␊ |
public Cache()␊ |
{␊ |
_cache = new Dictionary<string, object>();␊ |
}␊ |
␊ |
public object get(string key)␊ |
{␊ |
return _cache[key];␊ |
}␊ |
␊ |
public void set(string key, object obj)␊ |
{␊ |
_cache[key] = obj;␊ |
}␊ |
␊ |
public void unset(string key)␊ |
{␊ |
_cache.Remove(key);␊ |
}␊ |
␊ |
public void clear()␊ |
{␊ |
_cache = new Dictionary<string, object>();␊ |
}␊ |
}␊ |
}␊ |