Files
Enigmos/Modules/SubModules/OutputSubModule.cs
2024-07-11 11:21:29 +01:00

36 lines
1016 B
C#

using Nocturnis.DataStructures.DataTypes;
using Nocturnis.Enigmos.Modules;
using Nocturnis.Enigmos.Ports.DataPorts.Directions;
using Skeleton.DataStructure;
namespace Enigmos.Modules.SubModules;
public partial class OutputSubModule : SubModule, ISourceModule
{
public IDataOutPort? Out { get; set; }
public IDataOutPort[] DataOutPorts { get; set; } = Array.Empty<IDataOutPort>();
public new IInternalComputationalModule? ParentModule
{
get => base.ParentModule as IInternalComputationalModule;
set => base.ParentModule = value;
}
public override void Init()
{
base.Init();
Out = this.GetPort<IDataOutPort>("Out");
}
public void Define()
{
(object, DataType) Func(CacheItem c)
{
if (!ParentModule!.ComputationFinished)
ParentModule!.Compute();
return (ParentModule!.CachedResult.Data, ParentModule!.CachedResult.Type)!;
}
Out!.OutData.UpdateCalculation(Func);
}
}