Changeset 2753


Ignore:
Timestamp:
Feb 20, 2011, 11:44:13 AM (11 years ago)
Author:
kopal
Message:

execution engine now consumes data after execution (and only after) correctly

Location:
trunk/CrypPlugins/WorkspaceManager
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/WorkspaceManager/Execution/ExecutionEngine.cs

    r2683 r2753  
    492492                try
    493493                {
    494                     if (connectorModel.HasData && connectorModel.Data != null)
    495                     {
    496                         connectorModel.HasData = false;
    497                         connectorModel.Data = null;
    498                     }
     494                    connectorModel.HasData = false;
     495                    connectorModel.Data = null;
    499496                }
    500497                catch (Exception ex)
     
    514511            {
    515512                Thread.Sleep(this.executionEngine.SleepTime);
     513            }
     514
     515
     516            // ################
     517            //6. check if an "input" plugin may execute
     518            // ################
     519
     520            foreach (ConnectorModel connectorModel in inputConnectors)
     521            {
     522                List<ConnectionModel> inputConnections = connectorModel.InputConnections;
     523                foreach (ConnectionModel connectionModel in inputConnections)
     524                {
     525                    connectionModel.Active = false;
     526                    connectionModel.GuiNeedsUpdate = true;
     527                }
     528                foreach (ConnectionModel connectionModel in inputConnections)
     529                {
     530                    if (!connectionModel.From.PluginModel.Startable ||
     531                        (connectionModel.From.PluginModel.Startable && connectionModel.From.PluginModel.RepeatStart))
     532                    {
     533                        connectionModel.From.PluginModel.PluginProtocol.BroadcastMessage(connectionModel.From.PluginModel.MessageExecution);
     534                    }
     535                }
    516536            }
    517537        }       
  • trunk/CrypPlugins/WorkspaceManager/Model/Elements/ConnectorModel.cs

    r2616 r2753  
    275275                foreach (ConnectionModel connectionModel in outputConnections)
    276276                {
    277                     if (connectionModel.To.PluginModel.PluginProtocol.QueueLength == 0)
    278                     {
    279                         connectionModel.To.PluginModel.PluginProtocol.BroadcastMessage(connectionModel.To.PluginModel.MessageExecution);
    280                     }
    281                 }
    282             }
    283             else
    284             {
    285                 this.Data = null;
    286                 this.hasData = false;
    287                 this.GuiNeedsUpdate = true;
    288 
    289                 List<ConnectionModel> inputConnections = this.InputConnections;
    290                 foreach (ConnectionModel connectionModel in inputConnections)
    291                 {
    292                     connectionModel.Active = false;
    293                     connectionModel.GuiNeedsUpdate = true;
    294                 }
    295                 foreach (ConnectionModel connectionModel in inputConnections)
    296                 {
    297                     if (!connectionModel.From.PluginModel.Startable ||
    298                         (connectionModel.From.PluginModel.Startable && connectionModel.From.PluginModel.RepeatStart))
    299                     {
    300                         if (connectionModel.From.PluginModel.PluginProtocol.QueueLength == 0)
    301                         {
    302                             connectionModel.From.PluginModel.PluginProtocol.BroadcastMessage(connectionModel.From.PluginModel.MessageExecution);
    303                         }
    304                     }
    305                 }
    306             }
     277                    connectionModel.To.PluginModel.PluginProtocol.BroadcastMessage(connectionModel.To.PluginModel.MessageExecution);
     278                }
     279            }           
    307280        }
    308281
Note: See TracChangeset for help on using the changeset viewer.