Implement all defined methods in SaveDataManagement

This commit is contained in:
Alex Barney 2021-05-12 01:38:30 -07:00
parent 7122052565
commit 5c6f78e751
5 changed files with 914 additions and 58 deletions

View file

@ -13,6 +13,9 @@ namespace LibHac
Value = value; Value = value;
} }
public static bool operator ==(ApplicationId left, ApplicationId right) => left.Value == right.Value;
public static bool operator !=(ApplicationId left, ApplicationId right) => left.Value != right.Value;
public override bool Equals(object obj) => obj is ApplicationId id && Equals(id); public override bool Equals(object obj) => obj is ApplicationId id && Equals(id);
public bool Equals(ApplicationId other) => Value == other.Value; public bool Equals(ApplicationId other) => Value == other.Value;
public override int GetHashCode() => HashCode.Combine(Value); public override int GetHashCode() => HashCode.Combine(Value);

View file

@ -952,6 +952,30 @@ namespace LibHac.Fs.Impl
(byte)'d', (byte)':', (byte)' ' (byte)'d', (byte)':', (byte)' '
}; };
public static ReadOnlySpan<byte> LogSaveDataTimeStamp => // ", save_data_time_stamp: "
new[]
{
(byte)',', (byte)' ', (byte)'s', (byte)'a', (byte)'v', (byte)'e', (byte)'_', (byte)'d',
(byte)'a', (byte)'t', (byte)'a', (byte)'_', (byte)'t', (byte)'i', (byte)'m', (byte)'e',
(byte)'_', (byte)'s', (byte)'t', (byte)'a', (byte)'m', (byte)'p', (byte)':', (byte)' '
};
public static ReadOnlySpan<byte> LogSaveDataCommitId => // ", save_data_commit_id: 0x"
new[]
{
(byte)',', (byte)' ', (byte)'s', (byte)'a', (byte)'v', (byte)'e', (byte)'_', (byte)'d',
(byte)'a', (byte)'t', (byte)'a', (byte)'_', (byte)'c', (byte)'o', (byte)'m', (byte)'m',
(byte)'i', (byte)'t', (byte)'_', (byte)'i', (byte)'d', (byte)':', (byte)' ', (byte)'0',
(byte)'x'
};
public static ReadOnlySpan<byte> LogRestoreFlag => // ", restore_flag: "
new[]
{
(byte)',', (byte)' ', (byte)'r', (byte)'e', (byte)'s', (byte)'t', (byte)'o', (byte)'r',
(byte)'e', (byte)'_', (byte)'f', (byte)'l', (byte)'a', (byte)'g', (byte)':', (byte)' '
};
public static ReadOnlySpan<byte> LogSdkVersion => // "sdk_version: " public static ReadOnlySpan<byte> LogSdkVersion => // "sdk_version: "
new[] new[]
{ {

View file

@ -283,7 +283,7 @@ namespace LibHac.Fs
{ {
[FieldOffset(0x00)] public SaveDataAttribute Attribute; [FieldOffset(0x00)] public SaveDataAttribute Attribute;
[FieldOffset(0x40)] public ulong OwnerId; [FieldOffset(0x40)] public ulong OwnerId;
[FieldOffset(0x48)] public ulong TimeStamp; [FieldOffset(0x48)] public long TimeStamp;
[FieldOffset(0x50)] public SaveDataFlags Flags; [FieldOffset(0x50)] public SaveDataFlags Flags;
[FieldOffset(0x58)] public long DataSize; [FieldOffset(0x58)] public long DataSize;
[FieldOffset(0x60)] public long JournalSize; [FieldOffset(0x60)] public long JournalSize;

File diff suppressed because it is too large Load diff

View file

@ -725,7 +725,7 @@ namespace LibHac.FsSystem
if (_timeStampGetter.Get(out long timeStamp).IsSuccess()) if (_timeStampGetter.Get(out long timeStamp).IsSuccess())
{ {
extraData.TimeStamp = (ulong)timeStamp; extraData.TimeStamp = timeStamp;
} }
long commitId = 0; long commitId = 0;