Пример #1
0
        public virtual bool Modify(string oGuid, T t)
        {
            T obj = null;

            if (DataTable.TryGetValue(oGuid, out obj))
            {
                t.CopyTo(obj);
                IEventArgs oIEventArgs = new ModelEventArgs()
                {
                    Data = obj, OpType = ModelOpType.Modify
                };
                Event.Notify(EventCall, oIEventArgs);
                obj.Notify(oIEventArgs);
                if (Accesser != null)
                {
                    Accesser.Modify(obj);
                }
                return(true);
            }
            else
            {
                App.Logger.Error("{0} 没有找到对应数据: GUID={1}", GetType().Name, oGuid);
                return(false);
            }
        }
Пример #2
0
 public virtual bool Add(string oGuid, T oData)
 {
     if (!DataTable.ContainsKey(oGuid))
     {
         DataTable.Add(oGuid, oData);
         Event.Notify(EventCall, new ModelEventArgs()
         {
             Data = oData, OpType = ModelOpType.Add
         });
         if (Accesser != null)
         {
             Accesser.Add(oData);
         }
         return(true);
     }
     else
     {
         App.Logger.Error("{0} 已经存在数据: GUID={1}", GetType().Name, oGuid);
         return(false);
     }
 }
Пример #3
0
        /// <summary>
        /// 删除数据
        /// </summary>
        /// <param name="oGuid">数据ID</param>
        /// <param name="isClear">是否清理数据包含的非代码资源</param>
        /// <returns></returns>
        public virtual bool Remove(string oGuid, bool isClear = false)
        {
            T obj = null;

            if (DataTable.TryGetValue(oGuid, out obj))
            {
                DataTable.Remove(oGuid);
                Event.Notify(EventCall, new ModelEventArgs()
                {
                    Data = obj, OpType = ModelOpType.Remove
                });
                if (Accesser != null)
                {
                    Accesser.Remove(obj);
                }
                obj.Dispose(); obj = null;
                return(true);
            }
            else
            {
                App.Logger.Error("{0} 没有找到对应数据:{1}", typeof(T), oGuid);
                return(false);
            }
        }
Пример #4
0
 public void Revert()
 {
     Accesser.WriteBytes(Addr, OriginalCode);
 }
Пример #5
0
 public void Free()
 {
     Accesser.FreeMemory(Addr, Size);
 }