/// <summary> /// Adds a single entity into the cache /// </summary> /// <param name="objectToCache">the entity to cache</param> public static void Add <T>(T objectToCache) where T : IData { var entityToCache = (IData)objectToCache; var cacheKey = new BackingDataCacheKey(objectToCache.GetType(), entityToCache.ID); BackingCache.Add(objectToCache, cacheKey); }
/// <summary> /// Gets one entity from the cache by its key /// </summary> /// <typeparam name="T">the type of the entity</typeparam> /// <param name="key">the key it was cached with</param> /// <returns>the entity requested</returns> public static T Get <T>(BackingDataCacheKey key) where T : IData { return(BackingCache.Get <T>(key)); }
/// <summary> /// Removes an entity from the cache by its key /// </summary> /// <param name="key">the key of the entity to remove</param> public static void Remove(BackingDataCacheKey key) { BackingCache.Remove(key); }
/// <summary> /// Checks if an entity is in the cache /// </summary> /// <param name="key">the key of the entity</param> /// <returns>if it is in the cache of not</returns> public static bool Exists(BackingDataCacheKey key) { return(BackingCache.Exists(key)); }
/// <summary> /// Gets one entity from the cache by its ID, only works for Singleton spawners with data templates(IEntities) /// </summary> /// <typeparam name="T">the type of the entity</typeparam> /// <param name="id">the id</param> /// <returns>the entity requested</returns> public static T Get <T>(long id) where T : IData { var key = new BackingDataCacheKey(typeof(T), id); return(Get <T>(key)); }