public void Start() { Console.WriteLine("--- Extended Hashing Tester ---"); UtilityOperations.GetDiskFreeSpace("C:\\", out var SectorsPerCluster, out var BytesPerSector, out var NumberOfFreeClusters, out var TotalNumberOfClusters); var ClusterSize = SectorsPerCluster * BytesPerSector; var emptyProp = new Property(); Console.WriteLine($"Record size: {emptyProp.GetSize()}"); Console.WriteLine($"Cluster size: {ClusterSize}"); var bFactor = (ClusterSize - 8) / emptyProp.GetSize(); Console.WriteLine($"Recomended BFactor: {bFactor}"); Console.Write($"Blocking factor (default {bFactor}): "); var inp = Console.ReadLine(); bFactor = string.IsNullOrWhiteSpace(inp) ? bFactor : int.Parse(inp); Console.Write("File path (default file.dat): "); inp = Console.ReadLine(); inp = String.IsNullOrWhiteSpace(inp) ? "file.dat" : inp; hashing = new ExtendibleHashingDirectory <Property>(inp, bFactor, 9); Console.Write("Seed (default is random): "); inp = Console.ReadLine(); var seed = string.IsNullOrWhiteSpace(inp) ? Guid.NewGuid().GetHashCode() : int.Parse(inp); Console.WriteLine($"Seed = {seed}"); rnd = new Random(seed); helpStructure = new Dictionary <int, Property>(); do { Console.WriteLine(); PrintStats(); Console.WriteLine(); PrintMenu(); GetInput(); Console.WriteLine(); HandleInput(); } while (!exit); }
public PropertyStorage() { _context = new ExtendibleHashingDirectory <Property>("properties.dat", 3, 6); }