65 lines
1.4 KiB
C#
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;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|