コード例 #1
0
        private void LoadCaches(string[] entities)
        {
            for (int i = 0; i < entities.Length; ++i)
            {
                string name = entities[i];
                if (!m_cacheEntities.ContainsKey(name))
                {
                    EB.Debug.LogError("DataCacheManager.LoadCaches: entity not found for {0}", name);
                    continue;
                }

                DataCacheEntity entity = m_cacheEntities[name];
                if (entity.Cache != null)
                {
                    continue;
                }

                IVersionedDataCache cache = LoadCache(name, entity.Type);
                if (cache != null)
                {
                    entity.Cache   = cache;
                    entity.Version = cache.Version;
                }
            }
        }
コード例 #2
0
        private void RegisterEntity(string name, System.Type type, OnCacheUpdatedDelegate onupdated)
        {
            if (m_cacheEntities.ContainsKey(name))
            {
                DataCacheEntity entity = m_cacheEntities[name];
                if (entity.Type != type)
                {
                    EB.Debug.LogError("DataCacheManager.RegisterCacheEntity: exists {0} named {1} not match {2}",
                                      m_cacheEntities[name].ToString(), name, type.ToString());

                    return;
                }

                EB.Debug.LogWarning("DataCacheManager.RegisterCacheEntity: {0} named {1} already exists",
                                    type.ToString(), name);

                if (onupdated != null)
                {
                    entity.OnCacheUpdated += onupdated;
                }
            }
            else
            {
                DataCacheEntity entity = new DataCacheEntity();
                entity.Name = name;
                entity.Type = type;
                entity.Name = string.Empty;
                if (onupdated != null)
                {
                    entity.OnCacheUpdated += onupdated;
                }
                m_cacheEntities[name] = entity;
            }
        }
コード例 #3
0
        public T Load <T>(string name) where T : IVersionedDataCache
        {
            UnityEngine.Debug.Assert(m_cacheEntities.ContainsKey(name), "DataCacheManager.Load: entity not exists");

            LoadCaches(new string[] { name });

            DataCacheEntity entity = m_cacheEntities[name];

            return((T)entity.Cache);
        }