mirror of
https://github.com/Artemis-RGB/Artemis
synced 2026-11-12 03:48:56 +00:00
38 lines
1.3 KiB
C#
38 lines
1.3 KiB
C#
using System.Collections.Generic;
|
|
using Artemis.Core.Modules;
|
|
|
|
namespace Artemis.Core.Services;
|
|
|
|
/// <summary>
|
|
/// A service that allows you to register and retrieve data models
|
|
/// </summary>
|
|
public interface IDataModelService : IArtemisService
|
|
{
|
|
/// <summary>
|
|
/// Add a data model to so that it is available to conditions and data bindings
|
|
/// </summary>
|
|
/// <param name="dataModel"></param>
|
|
DataModelRegistration RegisterDataModel(DataModel dataModel);
|
|
|
|
/// <summary>
|
|
/// Remove a previously added data model so that it is no longer available
|
|
/// </summary>
|
|
void RemoveDataModel(DataModelRegistration registration);
|
|
|
|
/// <summary>
|
|
/// Returns a list of all registered data models
|
|
/// </summary>
|
|
List<DataModel> GetDataModels();
|
|
|
|
/// <summary>
|
|
/// If found, returns the registered data model of type <typeparamref name="T" />
|
|
/// </summary>
|
|
/// <typeparam name="T">The type of the data model to find</typeparam>
|
|
T? GetDataModel<T>() where T : DataModel;
|
|
|
|
/// <summary>
|
|
/// If found, returns the data model of the provided plugin
|
|
/// </summary>
|
|
/// <param name="pluginFeature">The plugin to find the data model of</param>
|
|
DataModel? GetPluginDataModel(PluginFeature pluginFeature);
|
|
} |