2018-02-05 00:08:20 +01:00
|
|
|
using System;
|
|
|
|
|
2018-02-20 21:09:23 +01:00
|
|
|
namespace Ryujinx.Core.OsHle.Handles
|
2018-02-05 00:08:20 +01:00
|
|
|
{
|
2018-03-12 05:04:52 +01:00
|
|
|
class HDomain : HSession, IDisposable
|
2018-02-05 00:08:20 +01:00
|
|
|
{
|
2018-03-12 05:04:52 +01:00
|
|
|
private IdDictionary Objects;
|
2018-02-05 00:08:20 +01:00
|
|
|
|
|
|
|
public HDomain(HSession Session) : base(Session)
|
|
|
|
{
|
2018-03-12 05:04:52 +01:00
|
|
|
Objects = new IdDictionary();
|
2018-02-05 00:08:20 +01:00
|
|
|
}
|
|
|
|
|
2018-03-12 05:04:52 +01:00
|
|
|
public int Add(object Obj)
|
2018-02-05 00:08:20 +01:00
|
|
|
{
|
2018-03-12 05:04:52 +01:00
|
|
|
return Objects.Add(Obj);
|
|
|
|
}
|
2018-02-05 00:08:20 +01:00
|
|
|
|
2018-03-12 05:04:52 +01:00
|
|
|
public bool Delete(int Id)
|
|
|
|
{
|
|
|
|
return Objects.Delete(Id);
|
2018-02-05 00:08:20 +01:00
|
|
|
}
|
|
|
|
|
2018-03-12 05:04:52 +01:00
|
|
|
public object GetObject(int Id)
|
2018-02-05 00:08:20 +01:00
|
|
|
{
|
2018-03-12 05:04:52 +01:00
|
|
|
return Objects.GetData(Id);
|
|
|
|
}
|
2018-02-05 00:08:20 +01:00
|
|
|
|
2018-03-12 05:04:52 +01:00
|
|
|
public void Dispose()
|
|
|
|
{
|
|
|
|
Dispose(true);
|
2018-02-05 00:08:20 +01:00
|
|
|
}
|
|
|
|
|
2018-03-12 05:04:52 +01:00
|
|
|
protected virtual void Dispose(bool Disposing)
|
2018-02-05 00:08:20 +01:00
|
|
|
{
|
2018-03-12 05:04:52 +01:00
|
|
|
if (Disposing)
|
2018-02-05 00:08:20 +01:00
|
|
|
{
|
2018-03-12 05:04:52 +01:00
|
|
|
foreach (object Obj in Objects)
|
|
|
|
{
|
2018-03-12 06:07:48 +01:00
|
|
|
if (Obj != this && Obj is IDisposable DisposableObj)
|
2018-03-12 05:04:52 +01:00
|
|
|
{
|
|
|
|
DisposableObj.Dispose();
|
|
|
|
}
|
|
|
|
}
|
2018-02-05 00:08:20 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|