private static VectorOffset?BuildRemovedConnectors(IList <ConnectorModel> removedConnectors, FlatBufferBuilder builder) { if (removedConnectors == null) { return(null); } var removedConnectorsOffsets = BuildOffsets(removedConnectors, connector => { var name = builder.CreateString(connector.Name); return(ConnectorRemoval.CreateConnectorRemoval(builder, connector.Region.Index, name, connector.Direction)); }); return(ModelResponse.CreateRemovedConnectorsVector(builder, removedConnectorsOffsets)); }
private void ApplyRemovedConnectors(SimulationModel model, ModelResponse diff) { for (int i = 0; i < diff.RemovedConnectorsLength; i++) { ConnectorRemoval removedConnector = diff.GetRemovedConnectors(i); ProcessConnector(model, removedConnector.RegionIndex, removedConnector.Name, "remove", regionModel => { var deleted = removedConnector.Direction == Direction.Backward ? regionModel.InputConnectors.Remove(removedConnector.Name) : regionModel.OutputConnectors.Remove(removedConnector.Name); if (!deleted) { Log.Warn("Cannot remove connector {connector} from region {region}, connector not found", removedConnector.Name, regionModel.Index); } }); } }