using System; using Sarand.Net.Standard.Base.Core; using Sarand.Net.Standard.Base.Utils; namespace Sarand.Net.Standard.Base.Bus { //======================================================================= public abstract class SacsDisposableStateItem : SacsStateItem, ISacsDisposable { //------------------------------------------------------------------- // Definitions. //------------------------------------------------------------------- // Data members. private bool disposed = false; //------------------------------------------------------------------- // Construction. protected SacsDisposableStateItem() { } //------------------------------------------------------------------- // Disposal. ~SacsDisposableStateItem() { Dispose(!disposed); } public void Dispose() { if (disposed) return; Dispose(true); disposed = true; GC.SuppressFinalize(this); } protected virtual void Dispose(bool disposing) { if (disposing) { } } //------------------------------------------------------------------- // Properties. public bool Disposed { get { return disposed; } } //------------------------------------------------------------------- } //======================================================================= }