public TunnelTerminalFacade(Terminal terminal, TerminalFacade outputTerminalFacade) : base(terminal) { LifetimeGraphIdentifier innerDiagramLifetimeGraph = Terminal.ParentDiagram.GetLifetimeGraphIdentifier(); var constraint = new OutlastsLifetimeGraphConstraint(innerDiagramLifetimeGraph); TypeVariableReference inputTypeReference = terminal.GetTypeVariableSet().CreateReferenceToNewTypeVariable(new List <Constraint>() { constraint }); TrueVariable = terminal.CreateNewVariable(inputTypeReference); _outputTerminalFacade = outputTerminalFacade; }
public TerminateLifetimeOutputTerminalFacade(Terminal terminal, TerminalFacade inputFacade) : base(terminal) { InputFacade = inputFacade; }
/// <summary> /// Gets the true <see cref="VariableReference"/> associated with the <see cref="Terminal"/>, i.e., the reference /// to the variable that will be supplied directly to the terminal as input. /// </summary> /// <param name="terminal">The terminal.</param> /// <returns>The true <see cref="VariableReference"/>.</returns> public static VariableReference GetTrueVariable(this Terminal terminal) { TerminalFacade terminalFacade = AutoBorrowNodeFacade.GetNodeFacade(terminal.ParentNode)[terminal]; return(terminalFacade?.TrueVariable ?? new VariableReference()); }