You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.3 KiB
64 lines
1.3 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
|
|
namespace Apewer.Source
|
|
{
|
|
|
|
/// <summary></summary>
|
|
public abstract class Accessor<T> where T : class, IDatabase, new()
|
|
{
|
|
|
|
private T _source = null;
|
|
|
|
private bool _disposed = false;
|
|
|
|
/// <summary></summary>
|
|
public Accessor() { }
|
|
|
|
/// <summary></summary>
|
|
protected virtual T Source
|
|
{
|
|
get
|
|
{
|
|
if (_source == null) _source = new T();
|
|
return _source;
|
|
}
|
|
}
|
|
|
|
/// <summary></summary>
|
|
public virtual bool Connected
|
|
{
|
|
get
|
|
{
|
|
return (_source == null) ? false : _source.Online;
|
|
}
|
|
}
|
|
|
|
/// <summary></summary>
|
|
public virtual bool Disposed
|
|
{
|
|
get { return _disposed; }
|
|
}
|
|
|
|
/// <summary></summary>
|
|
public virtual void Close()
|
|
{
|
|
if (_source == null) return;
|
|
_source.Close();
|
|
}
|
|
|
|
/// <summary></summary>
|
|
public virtual void Dispose()
|
|
{
|
|
if (_source != null)
|
|
{
|
|
_source.Dispose();
|
|
_source = null;
|
|
}
|
|
_disposed = true;
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|