using System; using Modbus.IO; namespace Modbus.Device { /// /// Modbus device. /// public abstract class ModbusDevice : IDisposable { private ModbusTransport _transport; internal ModbusDevice(ModbusTransport transport) { _transport = transport; } /// /// Gets the Modbus Transport. /// /// The transport. public ModbusTransport Transport { get { return _transport; } } /// /// Releases unmanaged and - optionally - managed resources /// public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } /// /// Releases unmanaged and - optionally - managed resources /// /// true to release both managed and unmanaged resources; false to release only unmanaged resources. protected virtual void Dispose(bool disposing) { if (disposing) { if (_transport != null) { _transport.Dispose(); _transport = null; } } } } }