2021-01-02 14:34:28 -08:00
|
|
|
namespace Ryujinx.HLE.HOS.Services.Account.Acc.AccountService
|
|
|
|
{
|
|
|
|
class IManagerForApplication : IpcService
|
|
|
|
{
|
|
|
|
private ManagerServer _managerServer;
|
|
|
|
|
|
|
|
public IManagerForApplication(UserId userId)
|
|
|
|
{
|
|
|
|
_managerServer = new ManagerServer(userId);
|
|
|
|
}
|
|
|
|
|
2021-04-13 15:01:24 -07:00
|
|
|
[CommandHipc(0)]
|
2021-01-02 14:34:28 -08:00
|
|
|
// CheckAvailability()
|
|
|
|
public ResultCode CheckAvailability(ServiceCtx context)
|
|
|
|
{
|
|
|
|
return _managerServer.CheckAvailability(context);
|
|
|
|
}
|
|
|
|
|
2021-04-13 15:01:24 -07:00
|
|
|
[CommandHipc(1)]
|
2021-01-02 14:34:28 -08:00
|
|
|
// GetAccountId() -> nn::account::NetworkServiceAccountId
|
|
|
|
public ResultCode GetAccountId(ServiceCtx context)
|
|
|
|
{
|
|
|
|
return _managerServer.GetAccountId(context);
|
|
|
|
}
|
|
|
|
|
2021-04-13 15:01:24 -07:00
|
|
|
[CommandHipc(2)]
|
2021-01-02 14:34:28 -08:00
|
|
|
// EnsureIdTokenCacheAsync() -> object<nn::account::detail::IAsyncContext>
|
|
|
|
public ResultCode EnsureIdTokenCacheAsync(ServiceCtx context)
|
|
|
|
{
|
|
|
|
ResultCode resultCode = _managerServer.EnsureIdTokenCacheAsync(context, out IAsyncContext asyncContext);
|
|
|
|
|
|
|
|
if (resultCode == ResultCode.Success)
|
|
|
|
{
|
|
|
|
MakeObject(context, asyncContext);
|
|
|
|
}
|
|
|
|
|
|
|
|
return resultCode;
|
|
|
|
}
|
|
|
|
|
2021-04-13 15:01:24 -07:00
|
|
|
[CommandHipc(3)]
|
2021-01-02 14:34:28 -08:00
|
|
|
// LoadIdTokenCache() -> (u32 id_token_cache_size, buffer<bytes, 6>)
|
|
|
|
public ResultCode LoadIdTokenCache(ServiceCtx context)
|
|
|
|
{
|
|
|
|
return _managerServer.LoadIdTokenCache(context);
|
|
|
|
}
|
|
|
|
|
2021-04-13 15:01:24 -07:00
|
|
|
[CommandHipc(130)]
|
2021-01-02 14:34:28 -08:00
|
|
|
// GetNintendoAccountUserResourceCacheForApplication() -> (nn::account::NintendoAccountId, nn::account::nas::NasUserBaseForApplication, buffer<bytes, 6>)
|
|
|
|
public ResultCode GetNintendoAccountUserResourceCacheForApplication(ServiceCtx context)
|
|
|
|
{
|
|
|
|
return _managerServer.GetNintendoAccountUserResourceCacheForApplication(context);
|
|
|
|
}
|
|
|
|
|
2021-04-13 15:01:24 -07:00
|
|
|
[CommandHipc(160)] // 5.0.0+
|
2021-01-02 14:34:28 -08:00
|
|
|
// StoreOpenContext()
|
|
|
|
public ResultCode StoreOpenContext(ServiceCtx context)
|
|
|
|
{
|
|
|
|
return _managerServer.StoreOpenContext(context);
|
|
|
|
}
|
2022-08-30 11:52:45 -07:00
|
|
|
|
|
|
|
[CommandHipc(170)] // 6.0.0+
|
|
|
|
// LoadNetworkServiceLicenseKindAsync() -> object<nn::account::detail::IAsyncNetworkServiceLicenseKindContext>
|
|
|
|
public ResultCode LoadNetworkServiceLicenseKindAsync(ServiceCtx context)
|
|
|
|
{
|
|
|
|
ResultCode resultCode = _managerServer.LoadNetworkServiceLicenseKindAsync(context, out IAsyncNetworkServiceLicenseKindContext asyncContext);
|
|
|
|
|
|
|
|
if (resultCode == ResultCode.Success)
|
|
|
|
{
|
|
|
|
MakeObject(context, asyncContext);
|
|
|
|
}
|
|
|
|
|
|
|
|
return resultCode;
|
|
|
|
}
|
2021-01-02 14:34:28 -08:00
|
|
|
}
|
|
|
|
}
|