예제 #1
0
        public Dattribute Get(int dattribute_id)
        {
            if (dattribute_id <= 0)
            {
                return(null);
            }
            Dattribute dattribute = null;

            if (_dattributeMap.TryGetValue(dattribute_id, out dattribute))
            {
                _refMap[dattribute.DattributeId] = GetCurrentTimeTick();
                ReleaseData(false);
                return(dattribute);
            }

            dattribute = DbClassLoader.Instance.QueryData <Dattribute>(ConfigDataBase.Instance.DbAccessorFactory, dattribute_id);
            if (dattribute == null)
            {
#if UNITY_EDITOR
                Debug.LogWarning("Invalid `dattribute_id` value in table `dattribute` : " + dattribute_id);
#endif
                return(null);
            }

            _dattributeMap.Add(dattribute_id, dattribute);
            if (_refMap.ContainsKey(dattribute.DattributeId) == false)
            {
                _refMap.Add(dattribute.DattributeId, GetCurrentTimeTick());
            }

            ReleaseData(false);
            return(dattribute);
        }
예제 #2
0
        public void MemoryUpdate(int key, Dattribute dattribute)
        {
            Dattributes.RemoveAll(n => n.DattributeId == key);
            if (_dattributeMap.ContainsKey(key))
            {
                _dattributeMap.Remove(key);
                if (_refMap.ContainsKey(key))
                {
                    _refMap.Remove(key);
                }
            }

            if (dattribute != null)
            {
                Dattributes.Add(dattribute);
                _dattributeMap.Add(key, dattribute);
                _refMap.Add(key, DateTime.Now.Ticks);
            }
        }