Health/Assets/Scripts/FaceAnalyzer/opencv_compact/DisposableObject.cs

55 lines
1.1 KiB
C#
Raw Normal View History

2023-11-20 15:10:51 +00:00
using UnityEngine;
using System;
namespace OpenCVCompact
{
abstract public class DisposableObject : IDisposable
{
public bool IsDisposed { get; protected set; }
public bool IsEnabledDispose { get; set; }
protected DisposableObject ()
: this (true)
{
}
protected DisposableObject (bool isEnabledDispose)
{
IsEnabledDispose = isEnabledDispose;
IsDisposed = false;
}
public void Dispose ()
{
Dispose (true);
GC.SuppressFinalize (this);
}
protected virtual void Dispose (bool disposing)
{
if (!IsDisposed)
{
if (disposing)
{
}
IsDisposed = true;
}
}
~DisposableObject ()
{
Dispose (false);
}
public void ThrowIfDisposed ()
{
if (IsDisposed)
throw new ObjectDisposedException (GetType ().FullName);
}
}
}