- Work on storage service. Pre-squash commit.
This commit is contained in:
+14
-17
@@ -9,14 +9,23 @@ namespace Barotrauma.LuaCs.Services;
|
||||
public interface IPluginManagementService : IReusableService
|
||||
{
|
||||
/// <summary>
|
||||
/// Checks if an assembly with either the fully-qualified name globally or a 'friendly name' within loaded plugins
|
||||
/// with the given name is loaded.
|
||||
/// Checks if the supplied resource is currently loaded.
|
||||
/// </summary>
|
||||
/// <param name="friendlyName"></param>
|
||||
/// <param name="resource">The resource to check.</param>
|
||||
/// <returns></returns>
|
||||
bool IsAssemblyLoadedGlobal(string friendlyName);
|
||||
bool IsResourceLoaded<T>(T resource) where T : IAssemblyResourceInfo;
|
||||
|
||||
// TODO: Documentation.
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="package"></param>
|
||||
/// <param name="namespacePrefix"></param>
|
||||
/// <param name="includeInterfaces"></param>
|
||||
/// <param name="includeAbstractTypes"></param>
|
||||
/// <param name="includeDefaultContext"></param>
|
||||
/// <param name="includeExplicitAssembliesOnly"></param>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <returns></returns>
|
||||
FluentResults.Result<ImmutableArray<T>> GetTypes<T>(
|
||||
ContentPackage package = null,
|
||||
string namespacePrefix = null,
|
||||
@@ -24,18 +33,6 @@ public interface IPluginManagementService : IReusableService
|
||||
bool includeAbstractTypes = false,
|
||||
bool includeDefaultContext = true,
|
||||
bool includeExplicitAssembliesOnly = false);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the assembly <c>MetadataReference</c> collection for the BCL and base game assemblies.
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
ImmutableArray<MetadataReference> GetStandardMetadataReferences();
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
ImmutableArray<MetadataReference> GetPluginMetadataReferences();
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
|
||||
+41
-17
@@ -1,42 +1,66 @@
|
||||
using System.Collections.Immutable;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace Barotrauma.LuaCs.Services;
|
||||
|
||||
public interface IStorageService : IReusableService
|
||||
public interface IStorageService : IService
|
||||
{
|
||||
#region LocalGameData
|
||||
|
||||
FluentResults.Result<XDocument> LoadLocalXml(ContentPackage package, string localFilePath);
|
||||
FluentResults.Result<byte[]> LoadLocalBinary(ContentPackage package, string localFilePath);
|
||||
FluentResults.Result<string> LoadLocalText(ContentPackage package, string localFilePath);
|
||||
FluentResults.Result<bool> FileExistsInLocalData(ContentPackage package, string localFilePath);
|
||||
FluentResults.Result SaveLocalXml(ContentPackage package, string localFilePath, XDocument document);
|
||||
FluentResults.Result SaveLocalBinary(ContentPackage package, string localFilePath, in byte[] bytes);
|
||||
FluentResults.Result SaveLocalText(ContentPackage package, string localFilePath, in string text);
|
||||
// async
|
||||
Task<FluentResults.Result<XDocument>> LoadLocalXmlAsync(ContentPackage package, string localFilePath);
|
||||
Task<FluentResults.Result<byte[]>> LoadLocalBinaryAsync(ContentPackage package, string localFilePath);
|
||||
Task<FluentResults.Result<string>> LoadLocalTextAsync(ContentPackage package, string localFilePath);
|
||||
Task<FluentResults.Result> SaveLocalXmlAsync(ContentPackage package, string localFilePath, XDocument document);
|
||||
Task<FluentResults.Result> SaveLocalBinaryAsync(ContentPackage package, string localFilePath, byte[] bytes);
|
||||
Task<FluentResults.Result> SaveLocalTextAsync(ContentPackage package, string localFilePath, string text);
|
||||
|
||||
#endregion
|
||||
|
||||
#region ContentPackageData
|
||||
FluentResults.Result<XDocument> LoadPackageXml(ContentPackage package, string localFilePath, out XDocument document);
|
||||
FluentResults.Result<byte[]> LoadPackageBinary(ContentPackage package, string localFilePath, out byte[] bytes);
|
||||
FluentResults.Result<string> LoadPackageText(ContentPackage package, string localFilePath, out string text);
|
||||
|
||||
FluentResults.Result<ImmutableArray<XDocument>> LoadPackageXmlFiles(ContentPackage package, ImmutableArray<string> localFilePath);
|
||||
FluentResults.Result<ImmutableArray<byte[]>> TryLoadPackageBinaryFiles(ContentPackage package, ImmutableArray<string> localFilePath);
|
||||
FluentResults.Result<ImmutableArray<string>> TryLoadPackageTextFiles(ContentPackage package, ImmutableArray<string> localFilePath);
|
||||
|
||||
// singles
|
||||
FluentResults.Result<XDocument> LoadPackageXml(ContentPackage package, string localFilePath);
|
||||
FluentResults.Result<byte[]> LoadPackageBinary(ContentPackage package, string localFilePath);
|
||||
FluentResults.Result<string> LoadPackageText(ContentPackage package, string localFilePath);
|
||||
// collections
|
||||
FluentResults.Result<ImmutableArray<XDocument>> LoadPackageXmlFiles(ContentPackage package, ImmutableArray<string> localFilePaths);
|
||||
FluentResults.Result<ImmutableArray<byte[]>> LoadPackageBinaryFiles(ContentPackage package, ImmutableArray<string> localFilePaths);
|
||||
FluentResults.Result<ImmutableArray<string>> LoadPackageTextFiles(ContentPackage package, ImmutableArray<string> localFilePaths);
|
||||
FluentResults.Result<ImmutableArray<string>> FindFilesInPackage(ContentPackage package, string localSubfolder, string regexFilter, bool searchRecursively);
|
||||
FluentResults.Result<bool> FileExistsInPackage(ContentPackage package, string localFilePath);
|
||||
// async
|
||||
// singles
|
||||
Task<FluentResults.Result<XDocument>> LoadPackageXmlAsync(ContentPackage package, string localFilePath);
|
||||
Task<FluentResults.Result<byte[]>> LoadPackageBinaryAsync(ContentPackage package, string localFilePath);
|
||||
Task<FluentResults.Result<string>> LoadPackageTextAsync(ContentPackage package, string localFilePath);
|
||||
// collections
|
||||
Task<FluentResults.Result<ImmutableArray<XDocument>>> LoadPackageXmlFilesAsync(ContentPackage package, ImmutableArray<string> localFilePaths);
|
||||
Task<FluentResults.Result<ImmutableArray<byte[]>>> LoadPackageBinaryFilesAsync(ContentPackage package, ImmutableArray<string> localFilePaths);
|
||||
Task<FluentResults.Result<ImmutableArray<string>>> LoadPackageTextFilesAsync(ContentPackage package, ImmutableArray<string> localFilePaths);
|
||||
|
||||
#endregion
|
||||
|
||||
#region AbsolutePaths
|
||||
|
||||
FluentResults.Result<XDocument> TryLoadXml(string filePatht);
|
||||
FluentResults.Result TrySaveXml(string filePath, in XDocument document);
|
||||
FluentResults.Result<XDocument> TryLoadXml(string filePath, Encoding encoding = null);
|
||||
FluentResults.Result<string> TryLoadText(string filePath, Encoding encoding = null);
|
||||
FluentResults.Result<byte[]> TryLoadBinary(string filePath);
|
||||
FluentResults.Result TrySaveXml(string filePath, in XDocument document, Encoding encoding = null);
|
||||
FluentResults.Result TrySaveText(string filePath, in string text, Encoding encoding = null);
|
||||
FluentResults.Result TrySaveBinary(string filePath, in byte[] bytes);
|
||||
FluentResults.Result<string> TryLoadText(string filePath);
|
||||
FluentResults.Result TrySaveText(string filePath, string text);
|
||||
FluentResults.Result<bool> FileExists(string filePath);
|
||||
|
||||
//async
|
||||
Task<FluentResults.Result<XDocument>> TryLoadXmlAsync(string filePath, Encoding encoding = null);
|
||||
Task<FluentResults.Result<string>> TryLoadTextAsync(string filePath, Encoding encoding = null);
|
||||
Task<FluentResults.Result<byte[]>> TryLoadBinaryAsync(string filePath);
|
||||
Task<FluentResults.Result> TrySaveXmlAsync(string filePath, XDocument document, Encoding encoding = null);
|
||||
Task<FluentResults.Result> TrySaveTextAsync(string filePath, string text, Encoding encoding = null);
|
||||
Task<FluentResults.Result> TrySaveBinaryAsync(string filePath, byte[] bytes);
|
||||
#endregion
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user