Class Database<TKey, TData, TSource, TLoader>
Represents a generic database interface.
public abstract class Database<TKey, TData, TSource, TLoader> : IDatabase<TKey, TData>, IDatabase, IDataCrud, IManageableLifecycle<DatabaseManager>, IManageableLifecycle, IReloadable, IManageable<DatabaseManager>, IManageable, IDataCrud<TKey, TData> where TData : IData where TSource : IDataSource<TKey, TData, TLoader> where TLoader : IDataLoader<TKey, TData>
Type Parameters
TKey
Key type for the database.
TData
Data type for the database.
TSource
Data source type for the database.
TLoader
Data loader type for the database.
- Inheritance
-
Database<TKey, TData, TSource, TLoader>
- Derived
- Inherited Members
- Extension Methods
Constructors
Database(string, TSource, TLoader)
Represents a generic database interface.
protected Database(string name, TSource source, TLoader loader)
Parameters
name
stringName of the database.
source
TSourceData source for the database.
loader
TLoaderData loader for the database.
Properties
DataLoader
public TLoader DataLoader { get; }
Property Value
- TLoader
DataSource
public TSource DataSource { get; }
Property Value
- TSource
IsInitialized
Indicates whether the database has been initialized.
public bool IsInitialized { get; }
Property Value
IsLoaded
Indicates whether the database has been loaded.
public bool IsLoaded { get; }
Property Value
this[TKey]
Allows getting/setting via square brackets: myDb[key] or myDb[key] = item.
public TData this[TKey key] { get; set; }
Parameters
key
TKey
Property Value
- TData
Log
protected abstract Logger Log { get; }
Property Value
Name
public string Name { get; }
Property Value
Methods
Add(TKey, TData)
public virtual void Add(TKey key, TData item)
Parameters
key
TKeyitem
TData
Add(TData)
public virtual TKey Add(TData item)
Parameters
item
TData
Returns
- TKey
Clear()
public virtual void Clear()
Clear(DatabaseManager)
Clears the database, removing all data.
public virtual void Clear(DatabaseManager manager)
Parameters
manager
DatabaseManager
Count()
public virtual int Count()
Returns
ForEach(Action<TKey, TData>)
public void ForEach(Action<TKey, TData> iterator)
Parameters
iterator
Action<TKey, TData>
Get(TKey)
public virtual TData Get(TKey key)
Parameters
key
TKey
Returns
- TData
GetAll()
public virtual List<TData> GetAll()
Returns
- List<TData>
Initialize(DatabaseManager, List<IPlugin>)
Initializes the lifecycle of the manager with a specific type.
public virtual void Initialize(DatabaseManager manager, List<IPlugin> plugins)
Parameters
manager
DatabaseManagerplugins
List<IPlugin>
Load(DatabaseManager, List<IPlugin>)
Loads the manager and its dependencies with a specific type.
public virtual void Load(DatabaseManager manager, List<IPlugin> plugins)
Parameters
manager
DatabaseManagerplugins
List<IPlugin>
Ready(DatabaseManager, List<IPlugin>)
Prepares the manager for use with a specific type, typically after loading.
public void Ready(DatabaseManager manager, List<IPlugin> plugins)
Parameters
manager
DatabaseManagerplugins
List<IPlugin>
Reload(DatabaseManager)
Reloads the database from its source.
public void Reload(DatabaseManager manager)
Parameters
manager
DatabaseManager
Reload(DatabaseManager, List<IPlugin>, ReloadReason)
Reloads the manager and its dependencies with a specific type.
public virtual void Reload(DatabaseManager manager, List<IPlugin> plugins, ReloadReason reason)
Parameters
manager
DatabaseManagerplugins
List<IPlugin>reason
ReloadReason
Remove(TKey)
public virtual TData? Remove(TKey key)
Parameters
key
TKey
Returns
- TData
Terminate(DatabaseManager, List<IPlugin>)
Terminates the manager and cleans up resources with a specific type.
public virtual void Terminate(DatabaseManager manager, List<IPlugin> plugins)
Parameters
manager
DatabaseManagerplugins
List<IPlugin>
TryGet(TKey)
public virtual TData? TryGet(TKey key)
Parameters
key
TKey
Returns
- TData
Unload(DatabaseManager)
Unloads the database, clearing its data.
public void Unload(DatabaseManager manager)
Parameters
manager
DatabaseManager
Unload(DatabaseManager, List<IPlugin>)
Unloads the manager and its dependencies with a specific type.
public virtual void Unload(DatabaseManager manager, List<IPlugin> plugins)
Parameters
manager
DatabaseManagerplugins
List<IPlugin>
VerifySource()
Verify the source of the database.
public virtual void VerifySource()