Пример #1
0
        public static void AddToCache(string md5, FileInfo path, FileCacheOperation operation)
        {
            var fileDict = GetFileCacheItems(operation);
            var dir      = GetTempDirectoryInfo(operation);

            if (IsInCache(path, md5, operation))
            {
                var curItem = GetCacheFileItemHelper(path, md5, operation);
                var curPath = Path.Combine(dir.FullName, curItem.path);
                File.Delete(curPath);
                mFileCache.items.Remove(curItem);
                fileDict.Remove(path.Name);
            }

            RemoveCacheWithoutMd5(path, operation);

            FileCacheItem item = new FileCacheItem {
                path = path.Name, Operation = (uint)operation, OriginalName = path.Name
            };

            item.md5 = md5;

            mFileCache.items.Add(item);
            fileDict.Add(item.OriginalName, item);

            string newPath = Path.Combine(dir.FullName, path.Name);

            File.Copy(path.FullName, newPath, true);
            Save();
        }
Пример #2
0
        public static FileInfo GetCacheNewFileInfo(string path, FileCacheOperation operation)
        {
            FileInfo info    = new FileInfo(path);
            var      dir     = GetTempDirectoryInfo(operation);
            var      curPath = Path.Combine(dir.FullName, info.Name);

            return(new FileInfo(curPath));
        }
Пример #3
0
        public static void RemoveCacheWithoutMd5(FileInfo originalInfo, FileCacheOperation operation)
        {
            var fileDict = GetFileCacheItems(operation);

            if (fileDict.ContainsKey(originalInfo.Name))
            {
                var item = fileDict[originalInfo.Name];
                fileDict.Remove(originalInfo.Name);
                mFileCache.items.Remove(item);
            }
        }
Пример #4
0
        public static FileInfo GetCacheFileInfo(FileInfo originalInfo, string md5, FileCacheOperation operation)
        {
            if (IsInCache(originalInfo, md5, operation))
            {
                var curItem = GetCacheFileItemHelper(originalInfo, md5, operation);
                var dir     = GetTempDirectoryInfo(operation);
                var curPath = Path.Combine(dir.FullName, curItem.path);
                return(new FileInfo(curPath));
            }

            return(null);
        }
Пример #5
0
        public static bool IsInCacheWithoutMd5(FileInfo originalInfo, FileCacheOperation operation)
        {
            var fileDict = GetFileCacheItems(operation);

            if (fileDict.ContainsKey(originalInfo.Name))
            {
                return(true);
            }


            return(false);
        }
Пример #6
0
        public static Dictionary <String, FileCacheItem> GetFileCacheItems(FileCacheOperation operation)
        {
            switch (operation)
            {
            case FileCacheOperation.ImageOptimzed:
                return(ImageOptimzedFiles);

            case FileCacheOperation.Encoded:
                return(EncodedFiles);

            case FileCacheOperation.PVR:
                return(PVRFiles);
            }
            return(null);
        }
Пример #7
0
        public static DirectoryInfo GetTempDirectoryInfo(FileCacheOperation operation)
        {
            switch (operation)
            {
            case FileCacheOperation.ImageOptimzed:
                return(ImageOptimzedPath);

            case FileCacheOperation.Encoded:
                return(EncodedPath);

            case FileCacheOperation.PVR:
                return(PVRPath);
            }
            return(null);
        }
Пример #8
0
        public static bool IsInCache(FileInfo originalInfo, string md5, FileCacheOperation operation)
        {
            var fileDict = GetFileCacheItems(operation);

            if (fileDict.ContainsKey(originalInfo.Name))
            {
                var file = fileDict[originalInfo.Name];
                if (file.md5 == md5)
                {
                    return(true);
                }
            }


            return(false);
        }
Пример #9
0
        public static void AddToCacheWithoutCopy(string md5, FileInfo path, FileCacheOperation operation)
        {
            var fileDict = GetFileCacheItems(operation);

            FileCacheItem item = new FileCacheItem {
                md5 = md5, path = path.Name, Operation = (uint)operation, OriginalName = path.Name
            };

            if (IsInCache(path, md5, operation))
            {
                fileDict.Remove(item.OriginalName);
                var curItem = GetCacheFileItemHelper(path, md5, operation);
                mFileCache.items.Remove(curItem);
            }

            mFileCache.items.Add(item);
            RemoveCacheWithoutMd5(path, operation);
            fileDict.Add(item.OriginalName, item);

            Save();
        }
Пример #10
0
        public static void AddToCacheWithoutCopy(string md5, FileInfo path, Rectangle?textureRect, Point?offset, FileCacheOperation operation)
        {
            var fileDict = GetFileCacheItems(operation);

            FileCacheItem item = new FileCacheItem {
                md5 = md5, path = path.Name, Operation = (uint)operation, OriginalName = path.Name
            };

            if (textureRect.HasValue)
            {
                item.TextureRect          = new RectU();
                item.TextureRect.Origin   = new PointU();
                item.TextureRect.Origin.X = (uint)textureRect.Value.X;
                item.TextureRect.Origin.Y = (uint)textureRect.Value.Y;

                item.TextureRect.Size        = new SizeU();
                item.TextureRect.Size.Width  = (uint)textureRect.Value.Size.Width;
                item.TextureRect.Size.Height = (uint)textureRect.Value.Size.Height;
            }

            if (offset.HasValue)
            {
                item.Offset   = new PointU();
                item.Offset.X = (uint)offset.Value.X;
                item.Offset.Y = (uint)offset.Value.Y;
            }

            if (IsInCache(path, md5, operation))
            {
                fileDict.Remove(item.OriginalName);
                var curItem = GetCacheFileItemHelper(path, md5, operation);
                mFileCache.items.Remove(curItem);
            }

            mFileCache.items.Add(item);
            RemoveCacheWithoutMd5(path, operation);
            fileDict.Add(item.OriginalName, item);

            Save();
        }
Пример #11
0
 public static string CopyCacheToDirectory(FileInfo originalInfo, string md5, DirectoryInfo path, FileCacheOperation operation)
 {
     if (IsInCache(originalInfo, md5, operation))
     {
         var    curItem = GetCacheFileItemHelper(originalInfo, md5, operation);
         var    dir     = GetTempDirectoryInfo(operation);
         var    curPath = Path.Combine(dir.FullName, curItem.path);
         string newPath = Path.Combine(path.FullName, curItem.path);
         File.Copy(curPath, newPath, true);
         return(newPath);
     }
     else
     {
         Logger.LogAllLine("Invalid copy {0} to path", md5, path);
         return(string.Empty);
     }
 }
Пример #12
0
        public static FileCacheItem GetCacheFileItem(FileInfo originalInfo, string md5, FileCacheOperation operation)
        {
            if (IsInCache(originalInfo, md5, operation))
            {
                var curItem = GetCacheFileItemHelper(originalInfo, md5, operation);
                TryUpdate(curItem);
                return(curItem);
            }

            return(null);
        }
Пример #13
0
        public static FileCacheItem GetCacheFileItemHelper(FileInfo originalInfo, string md5, FileCacheOperation operation)
        {
            var fileDict = GetFileCacheItems(operation);

            if (fileDict.ContainsKey(originalInfo.Name))
            {
                var file = fileDict[originalInfo.Name];
                if (file.md5 == md5)
                {
                    return(file);
                }
            }

            return(null);
        }
Пример #14
0
        public static FileCacheItem GetCacheFileItemHelperWithoutMd5(FileInfo originalInfo, FileCacheOperation operation)
        {
            var fileDict = GetFileCacheItems(operation);

            if (fileDict.ContainsKey(originalInfo.Name))
            {
                var file = fileDict[originalInfo.Name];
                return(file);
            }

            return(null);
        }