public File( IDirectoryCache directoryCache, IFileParameters fileParameters, IFactory <IIndexBlockProvider, int, ICommonAccessParameters> indexBlockProviderFactory, IFactory <IIndex <byte>, IIndexBlockProvider, ICommonAccessParameters> indexFactory, IFactory <IBlockStream <byte>, IBlockProvider <byte> > blockStreamFactory) { if (fileParameters == null) { throw new ArgumentNullException(nameof(fileParameters)); } if (indexBlockProviderFactory == null) { throw new ArgumentNullException(nameof(indexBlockProviderFactory)); } if (blockStreamFactory == null) { throw new ArgumentNullException(nameof(blockStreamFactory)); } this.directoryCache = directoryCache ?? throw new ArgumentNullException(nameof(directoryCache)); directoryBlockId = fileParameters.ParentDirectoryBlockId; Size = fileParameters.Size; var provider = indexBlockProviderFactory.Create(fileParameters.BlockId, this.directoryCache); index = indexFactory.Create(provider, directoryCache); blockStream = blockStreamFactory.Create(index); }
public Index( IIndexBlockProvider provider, IFactory <IBlockStream <int>, IBlockProvider <int> > blockStreamFactory, ICommonAccessParameters accessParameters) { this.provider = provider ?? throw new ArgumentNullException(nameof(provider)); this.accessParameters = accessParameters ?? throw new ArgumentNullException(nameof(accessParameters)); if (blockStreamFactory == null) { throw new ArgumentNullException(nameof(blockStreamFactory)); } indexBlockStream = blockStreamFactory.Create(this.provider); }
public Directory( IIndex <DirectoryItem> index, IDirectoryCache directoryCache, DirectoryHeader header, IFactory <IIndexBlockProvider, int, ICommonAccessParameters> indexBlockProviderFactory, IFactory <IIndex <short>, IIndexBlockProvider, ICommonAccessParameters> indexFactory, IFactory <IBlockStream <short>, IBlockProvider <short> > blockStreamFactory, IFactory <IIndex <DirectoryItem>, IIndexBlockProvider, ICommonAccessParameters> directoryIndexFactory, IFactory <IDirectory, IIndex <DirectoryItem>, IDirectoryCache, DirectoryHeader> directoryFactory, IFactory <IFile, IFileParameters, IDirectoryCache> fileFactory, IFactory <IBlockStream <DirectoryItem>, IBlockProvider <DirectoryItem> > directoryBlockStreamFactory, IFactory <IDeletionFile, IFileParameters, IDirectoryCache> deletionFileFactory, IFactory <IDeletionDirectory, int, IDirectoryCache> deletionDirectoryFactory ) { if (indexFactory == null) { throw new ArgumentNullException(nameof(indexFactory)); } if (directoryBlockStreamFactory == null) { throw new ArgumentNullException(nameof(directoryBlockStreamFactory)); } this.index = index ?? throw new ArgumentNullException(nameof(index)); this.directoryCache = directoryCache ?? throw new ArgumentNullException(nameof(directoryCache)); this.indexBlockProviderFactory = indexBlockProviderFactory ?? throw new ArgumentNullException(nameof(indexBlockProviderFactory)); this.directoryIndexFactory = directoryIndexFactory ?? throw new ArgumentNullException(nameof(directoryIndexFactory)); this.directoryFactory = directoryFactory ?? throw new ArgumentNullException(nameof(directoryFactory)); this.fileFactory = fileFactory ?? throw new ArgumentNullException(nameof(fileFactory)); this.deletionFileFactory = deletionFileFactory ?? throw new ArgumentNullException(nameof(deletionFileFactory)); this.deletionDirectoryFactory = deletionDirectoryFactory ?? throw new ArgumentNullException(nameof(deletionDirectoryFactory)); blockStream = directoryBlockStreamFactory.Create(index); nameBlockIndex = header.NameBlockIndex; var nameIndexProvider = indexBlockProviderFactory.Create(nameBlockIndex, directoryCache); nameIndex = indexFactory.Create(nameIndexProvider, directoryCache); nameIndexBlockStream = blockStreamFactory.Create(nameIndex); firstEmptyItemOffset = header.FirstEmptyItemOffset; itemsCount = header.ItemsCount; lastNameOffset = header.LastNameOffset; parentDirectoryBlockId = header.ParentDirectoryBlockIndex; }
public AllocationManager( IFactory <IIndex <int>, IAllocationManager> indexFactory, IFactory <IBlockStream <int>, IBlockProvider <int> > blockStreamFactory, IBlockStorage storage, int freeSpaceBlocksCount) { if (indexFactory == null) { throw new ArgumentNullException(nameof(indexFactory)); } if (blockStreamFactory == null) { throw new ArgumentNullException(nameof(blockStreamFactory)); } this.storage = storage ?? throw new ArgumentNullException(nameof(storage)); index = indexFactory.Create(this); blockStream = blockStreamFactory.Create(index); ReleasedBlockCount = freeSpaceBlocksCount; }