2024-02-03 20:51:41 -06:00
|
|
|
using Microsoft.Iris.Data;
|
|
|
|
|
using Microsoft.Iris.Markup;
|
|
|
|
|
using Microsoft.Iris.Session;
|
2024-02-02 23:26:55 -06:00
|
|
|
|
|
|
|
|
namespace Microsoft.Iris.Asm;
|
|
|
|
|
|
2024-02-03 20:51:41 -06:00
|
|
|
public static class Assembler
|
2024-02-02 23:26:55 -06:00
|
|
|
{
|
2024-02-03 20:51:41 -06:00
|
|
|
public static void RegisterLoader()
|
|
|
|
|
{
|
|
|
|
|
MarkupSystem.RegisterFactoryByExtension(".uixa", Load);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static LoadResult Load(string uri)
|
|
|
|
|
{
|
|
|
|
|
Resource resource = ResourceManager.AcquireResource(uri);
|
|
|
|
|
if (resource == null)
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
|
|
ErrorManager.EnterContext(resource.Uri);
|
|
|
|
|
LoadResult loadResult = LoadResultCache.Read(resource.Uri);
|
|
|
|
|
if (loadResult != null)
|
|
|
|
|
{
|
|
|
|
|
LoadResultCache.Write(uri, loadResult);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
loadResult = new AsmMarkupLoadResult(resource, uri);
|
|
|
|
|
if (loadResult != null)
|
|
|
|
|
resource = null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
resource?.Free();
|
|
|
|
|
ErrorManager.ExitContext();
|
|
|
|
|
return loadResult;
|
|
|
|
|
}
|
2024-02-02 23:26:55 -06:00
|
|
|
}
|