/*************************************************************************** The Disc Image Chef ---------------------------------------------------------------------------- Filename : PartPlugin.cs Version : 1.0 Author(s) : Natalia Portillo Component : Partitioning scheme plugins Revision : $Revision$ Last change by : $Author$ Date : $Date$ --[ Description ] ---------------------------------------------------------- Defines functions to be used by partitioning scheme plugins and several constants. --[ License ] -------------------------------------------------------------- This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . ---------------------------------------------------------------------------- Copyright (C) 2011-2014 Claunia.com ****************************************************************************/ //$Id$ using System; using System.Collections.Generic; namespace DiscImageChef.PartPlugins { /// /// Abstract class to implement partitioning schemes interpreting plugins. /// public abstract class PartPlugin { /// Plugin name. public string Name; /// Plugin UUID. public Guid PluginUUID; protected PartPlugin() { } /// /// Interprets a partitioning scheme. /// /// true, if partitioning scheme is recognized, false otherwise. /// Disk image. /// Returns list of partitions. public abstract bool GetInformation(ImagePlugins.ImagePlugin imagePlugin, out List partitions); } /// /// Partition structure. /// public struct Partition { /// Partition number, 0-started public ulong PartitionSequence; /// Partition type public string PartitionType; /// Partition name (if the scheme supports it) public string PartitionName; /// Start of the partition, in bytes public ulong PartitionStart; /// LBA of partition start public ulong PartitionStartSector; /// Length in bytes of the partition public ulong PartitionLength; /// Length in sectors of the partition public ulong PartitionSectors; /// Information that does not find space in this struct public string PartitionDescription; } }