Browse ISOs
This commit is contained in:
@@ -1,10 +1,13 @@
|
||||
using System.Collections.ObjectModel;
|
||||
using FileTime.Core.Models;
|
||||
|
||||
namespace FileTime.Core.ContentAccess;
|
||||
|
||||
public interface IContentProviderRegistry
|
||||
{
|
||||
ReadOnlyObservableCollection<IContentProvider> ContentProviders { get; }
|
||||
ReadOnlyObservableCollection<ISubContentProvider> SubContentProviders { get; }
|
||||
void AddContentProvider(IContentProvider contentProvider);
|
||||
void RemoveContentProvider(IContentProvider contentProvider);
|
||||
Task<ISubContentProvider?> GetSubContentProviderForElement(IElement parentElement);
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
using FileTime.Core.Enums;
|
||||
using FileTime.Core.Models;
|
||||
using FileTime.Core.Timeline;
|
||||
|
||||
namespace FileTime.Core.ContentAccess;
|
||||
|
||||
public interface ISubContentProvider
|
||||
{
|
||||
Task<IItem?> GetItemByFullNameAsync(
|
||||
IElement parentElement,
|
||||
FullName itemPath,
|
||||
PointInTime pointInTime,
|
||||
AbsolutePathType forceResolvePathType = AbsolutePathType.Unknown,
|
||||
ItemInitializationSettings itemInitializationSettings = default);
|
||||
|
||||
Task<bool> CanHandleAsync(IElement parentElement);
|
||||
}
|
||||
@@ -1,8 +1,10 @@
|
||||
using System.Diagnostics;
|
||||
using FileTime.Core.Enums;
|
||||
using FileTime.Core.Timeline;
|
||||
|
||||
namespace FileTime.Core.Models;
|
||||
|
||||
[DebuggerDisplay("{Path.Path}, {Type}")]
|
||||
public class AbsolutePath
|
||||
{
|
||||
public ITimelessContentProvider TimelessProvider { get; }
|
||||
|
||||
@@ -3,4 +3,5 @@ namespace FileTime.Core.Models;
|
||||
public static class Constants
|
||||
{
|
||||
public const char SeparatorChar = '/';
|
||||
public const string SubContentProviderRootContainer = ":";
|
||||
}
|
||||
@@ -1,5 +1,8 @@
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace FileTime.Core.Models;
|
||||
|
||||
[DebuggerDisplay("{Path}")]
|
||||
public record FullName(string Path)
|
||||
{
|
||||
public FullName? GetParent()
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
namespace FileTime.Core.Models;
|
||||
|
||||
public sealed class ItemInitializationSettings
|
||||
public readonly struct ItemInitializationSettings
|
||||
{
|
||||
public bool SkipChildInitialization { get; init; }
|
||||
public AbsolutePath? Parent { get; init; }
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace FileTime.Core.Models;
|
||||
|
||||
[DebuggerDisplay("{Path}")]
|
||||
public record NativePath(string Path)
|
||||
{
|
||||
public override string ToString() => Path;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using System.Reactive.Subjects;
|
||||
using DeclarativeProperty;
|
||||
using FileTime.Core.Enums;
|
||||
using FileTime.Core.Models;
|
||||
|
||||
@@ -6,7 +6,7 @@ namespace FileTime.Core.Timeline;
|
||||
|
||||
public interface ITimelessContentProvider
|
||||
{
|
||||
BehaviorSubject<PointInTime> CurrentPointInTime { get; }
|
||||
IDeclarativeProperty<PointInTime> CurrentPointInTime { get; }
|
||||
|
||||
Task<IItem> GetItemByFullNameAsync(FullName fullName,
|
||||
PointInTime? pointInTime,
|
||||
|
||||
Reference in New Issue
Block a user