/// <summary> /// /// </summary> /// <param name="targetDirectoryName"></param> /// <param name="compress"></param> /// <param name="hashsize"></param> public DirtyVersionStorage(string targetDirectoryName, bool compress = true, int hashsize = Const.MinHashSize) : base(targetDirectoryName, compress, hashsize) { _rootDirectory = Path.Combine(_rootDirectory, ".gvcs"); _mapper = new Mapper(Path.Combine(_rootDirectory, ".maps"), false, hashsize); _hashed = new HashedDirectory(Path.Combine(_rootDirectory, ".objects"), compress, hashsize); }
public void FixtureSetup() { dir = Path.Combine(Path.GetTempPath(), "HashedDirectoryTest"); if (Directory.Exists(dir)) { try { Directory.Delete(dir, true); } catch { Thread.Sleep(200); Directory.Delete(dir, true); } } Directory.CreateDirectory(dir); hashdir = new HashedDirectory(dir, hashsize: 7); }
public void CanWriteAndRead(string file, string content, bool compressed) { hashdir = new HashedDirectory(dir + "/compress_" + compressed, compressed, 7); for (var i = 0; i <= 10; i++) { content = content + content; } var record = hashdir.Write(file, content); WriteDirToConsole(); Assert.NotNull(record); Assert.AreNotEqual(record.NameHash, record.DataHash); Assert.AreEqual(7, record.NameHash.Length); Assert.AreEqual(7, record.DataHash.Length); Assert.AreEqual(DateTime.Now.Year, record.LastWriteTime.Year); var res = new StreamReader(hashdir.Open(record)).ReadToEnd(); Assert.AreEqual(content, res); res = new StreamReader(hashdir.Open(file)).ReadToEnd(); Assert.AreEqual(content, res); }
/// <summary> /// Класс файлового хранилища, основанный на HasedDirectory /// </summary> /// <param name="workingDirectory">Рабочая директория</param> public FileStorageHashedDirectory(string workingDirectory) { Abilities = FileStorageAbilities.Persist; WorkingDirectory = workingDirectory; _hashedDirectoryStorage = new HashedDirectory(WorkingDirectory); }
/// <summary> /// Дескриптор файла, основанный на HashedDirectory /// </summary> /// <param name="hashedDirectory">Экземпляр настроенного движка хранилища</param> /// <param name="fileDescriptor">Представление файла</param> public FileHashedDirectoryBased(HashedDirectory hashedDirectory, IFileDescriptor fileDescriptor) { _hashedDirectoryStorage = hashedDirectory; Descriptor = fileDescriptor; }