Move filesystem metadata to GetInformation method for information only plugins.

This commit is contained in:
2022-12-17 22:41:56 +00:00
parent 42b9caaaa0
commit dc26b85c2f
135 changed files with 732 additions and 734 deletions

View File

@@ -83,10 +83,12 @@ public sealed partial class ext2FS
}
/// <inheritdoc />
public void GetInformation(IMediaImage imagePlugin, Partition partition, out string information, Encoding encoding)
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
out FileSystem metadata)
{
Encoding = encoding ?? Encoding.GetEncoding("iso-8859-15");
information = "";
metadata = new FileSystem();
var sb = new StringBuilder();
@@ -113,13 +115,13 @@ public sealed partial class ext2FS
Array.Copy(sbSector, sbOff, sblock, 0, sbSizeInBytes);
SuperBlock supblk = Marshal.ByteArrayToStructureLittleEndian<SuperBlock>(sblock);
Metadata = new FileSystem();
metadata = new FileSystem();
switch(supblk.magic)
{
case EXT2_MAGIC_OLD:
sb.AppendLine(Localization.ext2_old_filesystem);
Metadata.Type = FS_TYPE_EXT2;
metadata.Type = FS_TYPE_EXT2;
break;
case EXT2_MAGIC:
@@ -146,19 +148,19 @@ public sealed partial class ext2FS
if(newExt2)
{
sb.AppendLine(Localization.ext2_filesystem);
Metadata.Type = FS_TYPE_EXT2;
metadata.Type = FS_TYPE_EXT2;
}
if(ext3)
{
sb.AppendLine(Localization.ext3_filesystem);
Metadata.Type = FS_TYPE_EXT3;
metadata.Type = FS_TYPE_EXT3;
}
if(ext4)
{
sb.AppendLine(Localization.ext4_filesystem);
Metadata.Type = FS_TYPE_EXT4;
metadata.Type = FS_TYPE_EXT4;
}
break;
@@ -178,14 +180,14 @@ public sealed partial class ext2FS
_ => string.Format(Localization.Unknown_OS_0, supblk.creator_os)
};
Metadata.SystemIdentifier = extOs;
metadata.SystemIdentifier = extOs;
if(supblk.mkfs_t > 0)
{
sb.AppendFormat(Localization.Volume_was_created_on_0_for_1,
DateHandlers.UnixUnsignedToDateTime(supblk.mkfs_t), extOs).AppendLine();
Metadata.CreationDate = DateHandlers.UnixUnsignedToDateTime(supblk.mkfs_t);
metadata.CreationDate = DateHandlers.UnixUnsignedToDateTime(supblk.mkfs_t);
}
else
sb.AppendFormat(Localization.Volume_was_created_for_0, extOs).AppendLine();
@@ -244,8 +246,8 @@ public sealed partial class ext2FS
sb.AppendFormat(Localization.Volume_has_0_blocks_of_1_bytes_for_a_total_of_2_bytes, blocks,
1024 << (int)supblk.block_size, blocks * (ulong)(1024 << (int)supblk.block_size)).AppendLine();
Metadata.Clusters = blocks;
Metadata.ClusterSize = (uint)(1024 << (int)supblk.block_size);
metadata.Clusters = blocks;
metadata.ClusterSize = (uint)(1024 << (int)supblk.block_size);
if(supblk.mount_t > 0 ||
supblk.mount_c > 0)
@@ -302,18 +304,18 @@ public sealed partial class ext2FS
sb.AppendFormat(Localization.Last_written_on_0, DateHandlers.UnixUnsignedToDateTime(supblk.write_t)).
AppendLine();
Metadata.ModificationDate = DateHandlers.UnixUnsignedToDateTime(supblk.write_t);
metadata.ModificationDate = DateHandlers.UnixUnsignedToDateTime(supblk.write_t);
}
else
sb.AppendLine("Volume has never been written");
Metadata.Dirty = true;
metadata.Dirty = true;
switch(supblk.state)
{
case EXT2_VALID_FS:
sb.AppendLine(Localization.Volume_is_clean);
Metadata.Dirty = false;
metadata.Dirty = false;
break;
case EXT2_ERROR_FS:
@@ -335,7 +337,7 @@ public sealed partial class ext2FS
sb.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(supblk.volume_name, Encoding)).
AppendLine();
Metadata.VolumeName = StringHandlers.CToString(supblk.volume_name, Encoding);
metadata.VolumeName = StringHandlers.CToString(supblk.volume_name, Encoding);
}
switch(supblk.err_behaviour)
@@ -365,14 +367,14 @@ public sealed partial class ext2FS
if(supblk.uuid != Guid.Empty)
{
sb.AppendFormat(Localization.Volume_UUID_0, supblk.uuid).AppendLine();
Metadata.VolumeSerial = supblk.uuid.ToString();
metadata.VolumeSerial = supblk.uuid.ToString();
}
if(supblk.kbytes_written > 0)
sb.AppendFormat(Localization._0_KiB_has_been_written_on_volume, supblk.kbytes_written).AppendLine();
sb.AppendFormat(Localization._0_reserved_and_1_free_blocks, reserved, free).AppendLine();
Metadata.FreeClusters = free;
metadata.FreeClusters = free;
sb.AppendFormat(Localization._0_inodes_with_1_free_inodes_2, supblk.inodes, supblk.free_inodes,
supblk.free_inodes * 100 / supblk.inodes).AppendLine();

View File

@@ -33,7 +33,6 @@
using System;
using System.Diagnostics.CodeAnalysis;
using System.Text;
using Aaru.CommonTypes.AaruMetadata;
using Aaru.CommonTypes.Interfaces;
namespace Aaru.Filesystems;
@@ -46,8 +45,6 @@ namespace Aaru.Filesystems;
// ReSharper disable once InconsistentNaming
public sealed partial class ext2FS : IFilesystem
{
/// <inheritdoc />
public FileSystem Metadata { get; private set; }
/// <inheritdoc />
public Encoding Encoding { get; private set; }
/// <inheritdoc />