using System; using Cosmos.HAL.BlockDevice; namespace Cosmos.System.FileSystem { public abstract class FileSystemFactory { /// /// The name of the file system. /// public abstract string Name { get; } /// /// Checks if the file system can handle the partition. /// /// The partition. /// Returns true if the file system can handle the partition, false otherwise. public abstract bool IsType(Partition aDevice); /// /// Creates a new object for the given partition, root path, and size. /// /// The partition. /// The root path. /// The size, in MB. /// public abstract FileSystem Create(Partition aDevice, string aRootPath, long aSize); public virtual void Format(Partition partition) => throw new NotImplementedException(); } }