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); } } }