protected override Task OnUnloadAsync(string id, object asset, IAssetUnloadParameters parameters, IContext context) { var provider = context.Get <IProvider <string, IAssetInfo> >(); var info = provider.Get <TInfo>(id); return(OnUnloadAsync(info, id, asset, (TUnloadParameters)parameters, context)); }
protected override void OnUnload(IAssetInfo info, string id, object asset, IAssetUnloadParameters parameters, IContext context) { if (EnableUnload) { InternalUnload(asset); } }
protected override void OnUnload(string id, object asset, IAssetUnloadParameters parameters, IContext context) { var provider = context.Get <IProvider <string, IAssetInfo> >(); var info = provider.Get <TInfo>(id); OnUnload(info, id, asset, (TUnloadParameters)parameters, context); }
protected virtual void OnUnload(string id, object asset, IAssetUnloadParameters parameters) { if (Tracker.UnTrack(id, asset, out _)) { Tracker.Remove(id); UnloadAsset(id, asset, parameters); } }
protected virtual Task UnloadAssetAsync(string id, object asset, IAssetUnloadParameters parameters) { IAssetLoader loader = this.GetLoaderByAsset(id); Task task = loader.UnloadAsync(id, asset, parameters, Context); return(task); }
public static void UnloadForce(this IAssetModule assetModule, string id, IAssetUnloadParameters parameters = null) { parameters ??= GetDefaultUnloadParametersByAsset(assetModule, id); AssetTrack track = assetModule.Tracker.Get(id); IAssetLoader loader = GetLoaderByAsset(assetModule, id); assetModule.Tracker.Remove(id); loader.Unload(id, track.Asset, parameters, assetModule.Context); }
protected virtual Task OnUnloadAsync(string id, object asset, IAssetUnloadParameters parameters) { if (Tracker.UnTrack(id, asset, out _)) { Tracker.Remove(id); return(UnloadAssetAsync(id, asset, parameters)); } return(Task.CompletedTask); }
public Task UnloadAsync(string id, object asset, IAssetUnloadParameters parameters, IContext context) { if (string.IsNullOrEmpty(id)) { throw new ArgumentException("Value cannot be null or empty.", nameof(id)); } if (asset == null) { throw new ArgumentNullException(nameof(asset)); } if (parameters == null) { throw new ArgumentNullException(nameof(parameters)); } if (context == null) { throw new ArgumentNullException(nameof(context)); } return(OnUnloadAsync(id, asset, parameters, context)); }
public async Task UnloadAsync(string id, object asset, IAssetUnloadParameters parameters) { if (string.IsNullOrEmpty(id)) { throw new ArgumentException("Value cannot be null or empty.", nameof(id)); } if (asset == null) { throw new ArgumentNullException(nameof(asset)); } if (parameters == null) { throw new ArgumentNullException(nameof(parameters)); } Type type = asset.GetType(); Unloading?.Invoke(id, asset, parameters); await OnUnloadAsync(id, asset, parameters); Unloaded?.Invoke(id, type, parameters); }
protected override Task OnUnloadAsync(IAssetInfo info, string id, object asset, IAssetUnloadParameters parameters, IContext context) { if (EnableUnload) { InternalUnload(asset); } return(Task.CompletedTask); }
protected AssetLoaderBase(IAssetLoadParameters defaultLoadParameters, IAssetUnloadParameters defaultUnloadParameters) { DefaultLoadParameters = defaultLoadParameters ?? throw new ArgumentNullException(nameof(defaultLoadParameters)); DefaultUnloadParameters = defaultUnloadParameters ?? throw new ArgumentNullException(nameof(defaultUnloadParameters)); }
protected virtual void UnloadAsset(string id, object asset, IAssetUnloadParameters parameters) { IAssetLoader loader = this.GetLoaderByAsset(id); loader.Unload(id, asset, parameters, Context); }
protected abstract void OnUnload(string id, object asset, IAssetUnloadParameters parameters, IContext context);
public static bool TryGetDefaultUnloadParametersByAsset(this IAssetModule assetModule, string id, out IAssetUnloadParameters parameters) { if (TryGetLoaderByAsset(assetModule, id, out IAssetLoader loader)) { parameters = loader.DefaultUnloadParameters; return(true); } parameters = null; return(false); }
public static void Unload(this IAssetModule assetModule, string id, object asset) { IAssetUnloadParameters parameters = GetDefaultUnloadParametersByAsset(assetModule, id); assetModule.Unload(id, asset, parameters); }
protected abstract Task OnUnloadAsync(string id, object asset, IAssetUnloadParameters parameters, IContext context);
public static Task UnloadAsync(this IAssetModule assetModule, string id, object asset) { IAssetUnloadParameters parameters = GetDefaultUnloadParametersByAsset(assetModule, id); return(assetModule.UnloadAsync(id, asset, parameters)); }
protected AssetLoader(IAssetLoadParameters defaultLoadParameters, IAssetUnloadParameters defaultUnloadParameters) : base(defaultLoadParameters, defaultUnloadParameters) { }
protected override Task OnUnloadAsync(ReferencedAssetInfo info, string id, object asset, IAssetUnloadParameters parameters, IContext context) { return(Task.CompletedTask); }
protected override void OnUnload(ReferencedAssetInfo info, string id, object asset, IAssetUnloadParameters parameters, IContext context) { }