12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- using System;
- using System.Threading;
- using System.Threading.Tasks;
- using Microsoft.EntityFrameworkCore;
- namespace Jellyfin.Server.Implementations;
- /// <summary>
- /// Defines the type and extension points for multi database support.
- /// </summary>
- public interface IJellyfinDatabaseProvider
- {
- /// <summary>
- /// Gets or Sets the Database Factory when initialisaition is done.
- /// </summary>
- IDbContextFactory<JellyfinDbContext>? DbContextFactory { get; set; }
- /// <summary>
- /// Initialises jellyfins EFCore database access.
- /// </summary>
- /// <param name="options">The EFCore database options.</param>
- void Initialise(DbContextOptionsBuilder options);
- /// <summary>
- /// Will be invoked when EFCore wants to build its model.
- /// </summary>
- /// <param name="modelBuilder">The ModelBuilder from EFCore.</param>
- void OnModelCreating(ModelBuilder modelBuilder);
- /// <summary>
- /// If supported this should run any periodic maintaince tasks.
- /// </summary>
- /// <param name="cancellationToken">The token to abort the operation.</param>
- /// <returns>A <see cref="Task"/> representing the asynchronous operation.</returns>
- Task RunScheduledOptimisation(CancellationToken cancellationToken);
- /// <summary>
- /// If supported this should perform any actions that are required on stopping the jellyfin server.
- /// </summary>
- /// <param name="cancellationToken">The token that will be used to abort the operation.</param>
- /// <returns>A <see cref="Task"/> representing the asynchronous operation.</returns>
- Task RunShutdownTask(CancellationToken cancellationToken);
- }
|