private void Update()
 {
     Sort();
     if (_pipelineTimer.Enabled == false)
     {
         _pipelineTimer.Start();
     }
     if (_spooler.SpoolerTimer.Enabled == false)
     {
         _spooler.SpoolerTimer.Start();
     }
     _networkConnection.PipelineElementsChanged(Count);
     _spooler.DataDelivery();
 }
Exemple #2
0
 public new void Sort()
 {
     // This part of the code solves the problem of the "Byzantine fault tolerance"
     lock (this)
     {
         Sort((x, y) =>
         {
             int compare = x.Element.Timestamp.CompareTo(y.Element.Timestamp);
             if (compare != 0)
             {
                 return(compare);
             }
             return(x.Element.XmlObject.CompareTo(y.Element.XmlObject));
         });
     }
     _networkConnection.PipelineElementsChanged(Count);
     if (_spooler.SpoolerTimer.Enabled == false)
     {
         _spooler.SpoolerTimer.Start();
     }
     _spooler.DataDelivery();
     PlanNextSchedulerRun();
 }