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
TKeyKey type for the database.
TDataData type for the database.
TSourceData source type for the database.
TLoaderData 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
namestringName of the database.
sourceTSourceData source for the database.
loaderTLoaderData 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
keyTKey
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
keyTKeyitemTData
Add(TData)
public virtual TKey Add(TData item)
Parameters
itemTData
Returns
- TKey
Clear()
public virtual void Clear()
Clear(DatabaseManager)
Clears the database, removing all data.
public virtual void Clear(DatabaseManager manager)
Parameters
managerDatabaseManager
Count()
public virtual int Count()
Returns
ForEach(Action<TKey, TData>)
public void ForEach(Action<TKey, TData> iterator)
Parameters
iteratorAction<TKey, TData>
Get(TKey)
public virtual TData Get(TKey key)
Parameters
keyTKey
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
managerDatabaseManagerpluginsList<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
managerDatabaseManagerpluginsList<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
managerDatabaseManagerpluginsList<IPlugin>
Reload(DatabaseManager)
Reloads the database from its source.
public void Reload(DatabaseManager manager)
Parameters
managerDatabaseManager
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
managerDatabaseManagerpluginsList<IPlugin>reasonReloadReason
Remove(TKey)
public virtual TData? Remove(TKey key)
Parameters
keyTKey
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
managerDatabaseManagerpluginsList<IPlugin>
TryGet(TKey)
public virtual TData? TryGet(TKey key)
Parameters
keyTKey
Returns
- TData
Unload(DatabaseManager)
Unloads the database, clearing its data.
public void Unload(DatabaseManager manager)
Parameters
managerDatabaseManager
Unload(DatabaseManager, List<IPlugin>)
Unloads the manager and its dependencies with a specific type.
public virtual void Unload(DatabaseManager manager, List<IPlugin> plugins)
Parameters
managerDatabaseManagerpluginsList<IPlugin>
VerifySource()
Verify the source of the database.
public virtual void VerifySource()