using LibHac; using LibHac.Common; using Ryujinx.HLE.HOS.Services.Fs.FileSystemProxy; namespace Ryujinx.HLE.HOS.Services.Fs { class IMultiCommitManager : DisposableIpcService // 6.0.0+ { private SharedRef _baseCommitManager; public IMultiCommitManager(ref SharedRef baseCommitManager) { _baseCommitManager = SharedRef.CreateMove(ref baseCommitManager); } [CommandHipc(1)] // 6.0.0+ // Add(object) public ResultCode Add(ServiceCtx context) { using SharedRef fileSystem = GetObject(context, 0).GetBaseFileSystem(); Result result = _baseCommitManager.Get.Add(ref fileSystem.Ref()); return (ResultCode)result.Value; } [CommandHipc(2)] // 6.0.0+ // Commit() public ResultCode Commit(ServiceCtx context) { Result result = _baseCommitManager.Get.Commit(); return (ResultCode)result.Value; } protected override void Dispose(bool isDisposing) { if (isDisposing) { _baseCommitManager.Destroy(); } } } }