47 lines
1.3 KiB
C#
47 lines
1.3 KiB
C#
using Enigmos.Cables;
|
|
using Enigmos.Modules.ComputationalModules;
|
|
using Enigmos.Modules.ControllingModules;
|
|
using Nocturnis.DataStructures;
|
|
using Nocturnis.Enigmos.Ports;
|
|
using TabulaSmaragdina;
|
|
|
|
namespace Enigmos.Ports.DataPorts;
|
|
|
|
public partial class DataOutPort : DataPort, IDataOutPort
|
|
{
|
|
public bool DataUpdated { get; set; }
|
|
|
|
public new ComputationalModule Module
|
|
{
|
|
get => base.Module as ComputationalModule;
|
|
set => base.Module = value;
|
|
}
|
|
|
|
public void DataUpdateRequest(RootModule root) => Module.ComputeWithTimeoutHandle(root);
|
|
|
|
public DataOutPort()
|
|
{
|
|
DataUpdated = false;
|
|
ResultData = GlobalProvider.DataStructureProvider.NewDataPackage();
|
|
}
|
|
|
|
public new DataInPort ConnectedPort
|
|
{
|
|
get => base.ConnectedPort as DataInPort;
|
|
set => base.ConnectedPort = value;
|
|
}
|
|
|
|
public override bool IsMatch(IBasePort other) =>
|
|
other is DataInPort inPort &&
|
|
GlobalProvider.EnigmosProvider.DataPortTypeCompatible(inPort.DataType, DataType);
|
|
public IDataPackage ResultData { get; set; }
|
|
|
|
public override BaseCable MakeCable(IBasePort other)
|
|
{
|
|
BaseCable res = base.MakeCable(other);
|
|
res.PortFrom = other;
|
|
res.PortTo = this;
|
|
return res;
|
|
}
|
|
}
|