Health/Assets/OpenCVForUnity/org/opencv/DisposableObject.cs

65 lines
1.4 KiB
C#

using UnityEngine;
using System;
namespace OpenCVForUnity
{
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);
}
public static IntPtr ThrowIfNullIntPtr(IntPtr ptr)
{
if (ptr == IntPtr.Zero)
throw new CoreModule.CvException("An error occurred on the C++ side, causing the class initialization to fail.Enclose the point where the error occurs in Utils.setDebugMode() method, and the error on the C++ side will be displayed on the console.");
return ptr;
}
}
}