﻿using JLGames.RocketDriver.Actions.Loaderx;
using JLGames.RocketDriver.CSharp.Service;

namespace JLGames.RocketDriver.Games.Service.Preload
{
    /// <summary>
    /// Preload service
    /// 预加载服务
    /// </summary>
    public interface IPreloadService : IService
    {
        /// <summary>
        /// Check if Bundle is in cache settings
        /// 检查Bundle是否在缓存配置中
        /// </summary>
        /// <param name="bundleName"></param>
        /// <returns></returns>
        bool CheckBundleConfig(string bundleName);

        /// <summary>
        /// Check if Bundle is already cached
        /// 检查Bundle是否在已经被缓存
        /// </summary>
        /// <param name="bundleName"></param>
        /// <returns></returns>
        bool CheckBundleCached(string bundleName);

        /// <summary>
        /// Get the cached Bundle
        /// 获取缓存的Bundle
        /// </summary>
        /// <param name="bundleName"></param>
        /// <returns></returns>
        BundleRef GetBundle(string bundleName);

        /// <summary>
        /// Free the cached Bundle
        /// 释放缓存的Bundle
        /// </summary>
        /// <param name="bundleName"></param>
        void ReleaseBundle(string bundleName);
    }
}