KAutoObject.cs 997 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. namespace Ryujinx.HLE.HOS.Kernel
  2. {
  3. class KAutoObject
  4. {
  5. protected Horizon System;
  6. public KAutoObject(Horizon System)
  7. {
  8. this.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. }