IServiceCreator.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using Ryujinx.Common;
  2. using Ryujinx.HLE.HOS.Services.Account.Acc;
  3. using Ryujinx.HLE.HOS.Services.Friend.ServiceCreator;
  4. using Ryujinx.HLE.Utilities;
  5. namespace Ryujinx.HLE.HOS.Services.Friend
  6. {
  7. [Service("friend:a", FriendServicePermissionLevel.Admin)]
  8. [Service("friend:m", FriendServicePermissionLevel.Manager)]
  9. [Service("friend:s", FriendServicePermissionLevel.System)]
  10. [Service("friend:u", FriendServicePermissionLevel.User)]
  11. [Service("friend:v", FriendServicePermissionLevel.Overlay)]
  12. class IServiceCreator : IpcService
  13. {
  14. private FriendServicePermissionLevel _permissionLevel;
  15. public IServiceCreator(ServiceCtx context, FriendServicePermissionLevel permissionLevel)
  16. {
  17. _permissionLevel = permissionLevel;
  18. }
  19. [Command(0)]
  20. // CreateFriendService() -> object<nn::friends::detail::ipc::IFriendService>
  21. public ResultCode CreateFriendService(ServiceCtx context)
  22. {
  23. MakeObject(context, new IFriendService(_permissionLevel));
  24. return ResultCode.Success;
  25. }
  26. [Command(1)] // 2.0.0+
  27. // CreateNotificationService(nn::account::Uid userId) -> object<nn::friends::detail::ipc::INotificationService>
  28. public ResultCode CreateNotificationService(ServiceCtx context)
  29. {
  30. UserId userId = context.RequestData.ReadStruct<UserId>();
  31. if (userId.IsNull)
  32. {
  33. return ResultCode.InvalidArgument;
  34. }
  35. MakeObject(context, new INotificationService(context, userId, _permissionLevel));
  36. return ResultCode.Success;
  37. }
  38. [Command(2)] // 4.0.0+
  39. // CreateDaemonSuspendSessionService() -> object<nn::friends::detail::ipc::IDaemonSuspendSessionService>
  40. public ResultCode CreateDaemonSuspendSessionService(ServiceCtx context)
  41. {
  42. MakeObject(context, new IDaemonSuspendSessionService(_permissionLevel));
  43. return ResultCode.Success;
  44. }
  45. }
  46. }