public static void ReleaseObject <T>(T obj) where T : class { long typePointer = ObjectPoolMgr.GetTypePointer <T>(); IObjectPool objectPool; if (ObjectPoolMgr.m_pools.TryGetValue(typePointer, out objectPool)) { objectPool.Recycle(obj); } }
public static void SetMinimumSize <T>(int minSize) where T : class { long typePointer = ObjectPoolMgr.GetTypePointer <T>(); if (ObjectPoolMgr.m_pools.ContainsKey(typePointer)) { ObjectPool <T> objectPool = (ObjectPool <T>)ObjectPoolMgr.m_pools[typePointer]; objectPool.MinimumSize = minSize; } }
public static ObjectPoolInfo GetPoolInfo <T>() where T : class { long typePointer = ObjectPoolMgr.GetTypePointer <T>(); IObjectPool objectPool; ObjectPoolInfo result; if (ObjectPoolMgr.m_pools.TryGetValue(typePointer, out objectPool)) { result = ((ObjectPool <T>)objectPool).Info; } else { result = new ObjectPoolInfo(0, 0); } return(result); }
public static T ObtainObject <T>() where T : class { long typePointer = ObjectPoolMgr.GetTypePointer <T>(); IObjectPool objectPool; T result; if (ObjectPoolMgr.m_pools.TryGetValue(typePointer, out objectPool)) { result = ((ObjectPool <T>)objectPool).Obtain(); } else { result = default(T); } return(result); }
public static bool RegisterType <T>(Func <T> func) where T : class { long typePointer = ObjectPoolMgr.GetTypePointer <T>(); bool result; lock (typeof(ObjectPoolMgr)) { if (!ObjectPoolMgr.m_pools.ContainsKey(typePointer)) { ObjectPoolMgr.m_pools.Add(typePointer, new ObjectPool <T>(func)); result = true; return(result); } } result = false; return(result); }
public static bool ContainsType <T>() { return(ObjectPoolMgr.m_pools.ContainsKey(ObjectPoolMgr.GetTypePointer <T>())); }