GetOldestItem() public method

public GetOldestItem ( ) : DefinitionCacheItem
return DefinitionCacheItem
コード例 #1
0
ファイル: DefinitionBuilder.cs プロジェクト: alex1989/OpenIDE
        private bool isUpdated(string file, DefinitionCache cache)
        {
            var oldest = cache.GetOldestItem(file);

            // This will be null on language placeholders
            if (oldest == null)
            {
                oldest = cache.GetOldestItem();
                if (oldest == null)
                {
                    return(true);
                }
            }
            var updated  = oldest.Updated;
            var filetime = fileTime(file);

            if (filetime > updated)
            {
                Logger.Write("Oldest is {0} {1} for {2}", updated.ToShortDateString(), updated.ToLongTimeString(), file);
                Logger.Write("Definition is out of date for {0} with file time {1} {2}", file, filetime.ToShortDateString(), filetime.ToLongTimeString());
                return(true);
            }

            var dir      = Path.GetDirectoryName(file);
            var name     = Path.GetFileNameWithoutExtension(file);
            var filesDir = Path.Combine(dir, name + "-files");

            if (Directory.Exists(filesDir))
            {
                return(isUpdated(updated, filesDir, Path.Combine(filesDir, "state")));
            }
            return(false);
        }
コード例 #2
0
ファイル: DefinitionCacheTests.cs プロジェクト: acken/OpenIDE
 public void Can_fetch_the_oldest_element_of_a_spesific_location_in_the_cache()
 {
     var type = DefinitionCacheItemType.Script;
     var cache = new DefinitionCache();
     cache
         .Add(type, "loc1", DateTime.Now, false, true, "cmd1", "")
             .Append(type, "loc1", DateTime.Now, false, true, "cmd2", "")
                 .Append(type, "loc1", new DateTime(2012,10,1,0,0,0), false, true, "cmd3", "")
                     .Append(type, "loc2", new DateTime(2012,1,1,0,0,0), false, false, "-g", "");
     Assert.That(cache.GetOldestItem("loc1").Name, Is.EqualTo("cmd3"));
 }
コード例 #3
0
ファイル: DefinitionCacheTests.cs プロジェクト: acken/OpenIDE
 public void Can_fetch_the_oldest_element_in_the_cache()
 {
     var type = DefinitionCacheItemType.Script;
     var time = new DateTime(2012,1,1,0,0,0);
     var cache = new DefinitionCache();
     cache
         .Add(type, "", DateTime.Now, false, true, "cmd1", "")
             .Append(type, "", DateTime.Now, false, true, "cmd2", "")
                 .Append(type, "", DateTime.Now, false, true, "cmd3", "")
                     .Append(type, "", time, false, false, "-g", "");
     cache
         .Add(type, "", DateTime.Now, false, true, "cmd1-1", "")
             .Append(type, "", DateTime.Now, false, true, "cmdAnother", "");
     Assert.That(cache.GetOldestItem().Name, Is.EqualTo("-g"));
 }
コード例 #4
0
ファイル: DefinitionBuilder.cs プロジェクト: alex1989/OpenIDE
        private void mergeBuiltInCommands(bool updateDefinitions, ProfileLocator profiles)
        {
            var builtInFile  = Path.Combine(profiles.AppRootPath, "oi-definitions.json");
            var builtInCache = new DefinitionCache();

            if (File.Exists(builtInFile))
            {
                builtInCache = appendDefinitions(builtInFile);
                var updated = builtInCache.GetOldestItem();
                if (updateDefinitions && updated != null && fileTime(System.Reflection.Assembly.GetExecutingAssembly().Location) > updated.Updated)
                {
                    builtInCache = writeBuiltInCommands(builtInFile, profiles);
                }
            }
            else
            {
                if (updateDefinitions)
                {
                    Logger.Write("Could not find definition file: " + builtInFile);
                    builtInCache = writeBuiltInCommands(builtInFile, profiles);
                }
            }
            _cache.Merge(_enabledLanguages, builtInCache);
        }
コード例 #5
0
ファイル: DefinitionBuilder.cs プロジェクト: acken/OpenIDE
 private void mergeBuiltInCommands(ProfileLocator profiles)
 {
     var builtInFile = Path.Combine(profiles.AppRootPath, "oi-definitions.json");
     var builtInCache = new DefinitionCache();
     if (File.Exists(builtInFile)) {
         builtInCache = appendDefinitions(builtInFile);
         var updated = builtInCache.GetOldestItem();
         if (updated != null && fileTime(System.Reflection.Assembly.GetExecutingAssembly().Location) > updated.Updated)
             builtInCache = writeBuiltInCommands(builtInFile, profiles);
     } else {
         Logger.Write("Could not find definition file: " + builtInFile);
         builtInCache = writeBuiltInCommands(builtInFile, profiles);
     }
     _cache.Merge(builtInCache);
 }
コード例 #6
0
ファイル: DefinitionBuilder.cs プロジェクト: acken/OpenIDE
        private bool isUpdated(string file, DefinitionCache cache)
        {
            var updated = cache.GetOldestItem(file).Updated;
            var filetime = fileTime(file);
            if (filetime > updated) {
                Logger.Write("Oldest is {0} {1} for {2}", updated.ToShortDateString(), updated.ToLongTimeString(), file);
                Logger.Write("Definition is out of date for {0} with file time {1} {2}", file, filetime.ToShortDateString(), filetime.ToLongTimeString());
                return true;
            }

            var dir = Path.GetDirectoryName(file);
            var name = Path.GetFileNameWithoutExtension(file);
            var filesDir = Path.Combine(dir, name + "-files");
            if (Directory.Exists(filesDir)) {
                return isUpdated(updated, filesDir, Path.Combine(filesDir, "state"));
            }
            return false;
        }