KAutoObject.cs 999 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. namespace Ryujinx.HLE.HOS.Kernel.Common
  2. {
  3. class KAutoObject
  4. {
  5. protected Horizon System;
  6. public KAutoObject(Horizon system)
  7. {
  8. System = system;
  9. }
  10. public virtual KernelResult SetName(string name)
  11. {
  12. if (!System.AutoObjectNames.TryAdd(name, this))
  13. {
  14. return KernelResult.InvalidState;
  15. }
  16. return KernelResult.Success;
  17. }
  18. public static KernelResult RemoveName(Horizon system, string name)
  19. {
  20. if (!system.AutoObjectNames.TryRemove(name, out _))
  21. {
  22. return KernelResult.NotFound;
  23. }
  24. return KernelResult.Success;
  25. }
  26. public static KAutoObject FindNamedObject(Horizon system, string name)
  27. {
  28. if (system.AutoObjectNames.TryGetValue(name, out KAutoObject obj))
  29. {
  30. return obj;
  31. }
  32. return null;
  33. }
  34. }
  35. }