public bool Exist(Guid id, out RecyclableObject obj)
 {
     using (new LockWait(ref _lock))
     {
         return(_map.TryGetValue(id, out obj));
     }
 }
Exemple #2
0
        public static RecyclableObject Allocate(Type type, IEnvironment env)
        {
            RecyclableObject t = GetCollection(env).Get(type) as RecyclableObject;

            t._env = env;
            t.OnAllocate();
            return(t);
        }
Exemple #3
0
        /// <summary>
        /// 分配一个实例
        /// </summary>
        /// <param name="type"></param>
        /// <param name="env"></param>
        /// <returns></returns>
        public static RecyclableObject Allocate(Type type, FrameworkEnvironment env)
        {
            RecyclableObject t = env.cycleCollection.Get(type) as RecyclableObject;

            t._env = env;
            t.OnAllocate();
            return(t);
        }
 public void Set(RecyclableObject obj)
 {
     using (new LockWait(ref _lock))
     {
         Guid id = obj.guid;
         if (_map.ContainsKey(id))
         {
             throw new Exception("Same Key");
         }
         else
         {
             _map.Add(id, obj);
         }
     }
 }
 /// <summary>
 /// 获取没有回收的实例
 /// </summary>
 /// <param name="id"></param>
 /// <param name="obj"></param>
 /// <returns></returns>
 public bool GetFromMemory(Guid id, out RecyclableObject obj)
 {
     return(_memory.Exist(id, out obj));
 }
 /// <summary>
 /// 回收一个实例
 /// </summary>
 /// <param name="type"></param>
 /// <param name="t"></param>
 /// <param name="arg"></param>
 public void Set(Type type, RecyclableObject t, IEventArgs arg = null)
 {
     _memory.Remove(t.guid);
     _createPool.Set(type, t, arg);
 }
Exemple #7
0
        /// <summary>
        /// 获取没有回收的实例
        /// </summary>
        /// <param name="envType"></param>
        /// <param name="id"></param>
        /// <param name="obj"></param>
        /// <returns></returns>
        public static bool GetFromMemory(EnvironmentType envType, Guid id, out RecyclableObject obj)
        {
            var _env = Framework.GetEnv(envType);

            return(GetFromMemory(_env, id, out obj));
        }
Exemple #8
0
 /// <summary>
 /// 获取没有回收的实例
 /// </summary>
 /// <param name="env"></param>
 /// <param name="id"></param>
 /// <param name="obj"></param>
 /// <returns></returns>
 public static bool GetFromMemory(IEnvironment env, Guid id, out RecyclableObject obj)
 {
     return(GetCollection(env).GetFromMemory(id, out obj));
 }
Exemple #9
0
 /// <summary>
 /// 获取没有回收的实例
 /// </summary>
 /// <param name="env"></param>
 /// <param name="id"></param>
 /// <param name="obj"></param>
 /// <returns></returns>
 public static bool GetFromMemory(FrameworkEnvironment env, Guid id, out RecyclableObject obj)
 {
     return(env.cycleCollection.GetFromMemory(id, out obj));
 }