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