Table of Contents

Class MultiFileDataSource<TKey, TData, TLoader>

Namespace
RisingV.Shared.Databases.Sources
Assembly
RisingV.Shared.dll

Represents a multi-file data source that scans all plugin directories for matching database files and merges them. Files are loaded in alphabetical order by plugin name, with later files overwriting earlier ones on key conflicts.

public abstract class MultiFileDataSource<TKey, TData, TLoader> : MapDataSource<TKey, TData, TLoader>, IDataSource<TKey, TData, TLoader>, IDataSource<TKey, TData>, IDataSource, IDataCrud, IDataCrud<TKey, TData> where TKey : notnull where TData : IData where TLoader : IDataStreamLoader<TKey, TData>

Type Parameters

TKey

Key type for the data source, must be not null.

TData

Data type for the data source, must implement IData interface.

TLoader

Loader type for the data source, must implement IDataStreamLoader interface.

Inheritance
DataSource<TKey, TData, TLoader>
MapDataSource<TKey, TData, TLoader>
MultiFileDataSource<TKey, TData, TLoader>
Implements
IDataSource<TKey, TData, TLoader>
IDataSource<TKey, TData>
IDataCrud<TKey, TData>
Inherited Members
Extension Methods

Constructors

MultiFileDataSource(string?, string?)

Represents a multi-file data source that scans all plugin directories for matching database files and merges them. Files are loaded in alphabetical order by plugin name, with later files overwriting earlier ones on key conflicts.

protected MultiFileDataSource(string? fileName = null, string? extension = "json")

Parameters

fileName string

File name of the data source, without extension.

extension string

File extension of the data source, default is "json".

Properties

Extension

public string? Extension { get; }

Property Value

string

FileName

public string? FileName { get; set; }

Property Value

string

IgnoreMissingFiles

public virtual bool IgnoreMissingFiles { get; }

Property Value

bool

Methods

Initialize(IDatabase<TKey, TData>)

public override void Initialize(IDatabase<TKey, TData> database)

Parameters

database IDatabase<TKey, TData>

Load(IDatabase<TKey, TData>, TLoader)

public override void Load(IDatabase<TKey, TData> database, TLoader loader)

Parameters

database IDatabase<TKey, TData>
loader TLoader

Verify(IDatabase<TKey, TData>)

public override void Verify(IDatabase<TKey, TData> database)

Parameters

database IDatabase<TKey, TData>