Пример #1
0
        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));
        }
Пример #2
0
        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);
                    }
                });
            }
        }