public void OnDataChanged(string[] ids, IOValue[] values) { PackageEnvelope activeOutPackage = this.m_ActiveOutPackage; if (activeOutPackage != null) { activeOutPackage.OnDataChanged(ids, values); } }
public void Reset() { lock (this.ioSyncObject) { this.m_inQueue.Clear(); this.m_inputQueue.Clear(); this.m_ActiveOutPackage = null; this.m_PreviousOutPackage = null; this.m_log.Info("PackageManager Reset"); } }
internal void SetInPackageDone() { try { lock (this.ioSyncObject) { PackageEnvelope envelope = this.m_inputQueue.Dequeue(); envelope.OutputTime.Stop(); //this.m_log.DebugFormat("Package {0} enqueue time {1}, output time {2}", envelope.ID, envelope.EnqueueingTime.Duration.ToString("F3"), envelope.OutputTime.Duration.ToString("F3")); this.CompletedPackage(envelope.Package); } } catch (Exception exception) { this.m_log.Error(exception.ToString()); throw; } }
internal void SetOutPackageDone() { lock (this.ioSyncObject) { PackageEnvelope activeOutPackage = this.GetActiveOutPackage(); if (activeOutPackage.Package.IsReadOnly) { activeOutPackage.OutputTime.Stop(); // this.m_log.DebugFormat("Package {0} enqueue time {1}, output time {2}", activeOutPackage.ID, activeOutPackage.EnqueueingTime.Duration.ToString("F3"), activeOutPackage.OutputTime.Duration.ToString("F3")); this.CompletedPackage(activeOutPackage.Package); this.m_PreviousOutPackage = activeOutPackage; this.m_PreviousOutPackage.ResetCursors(); this.m_PreviousOutPackage.EnqueueingTime.Start(); } if (!this.m_UsePreviousPackage) { this.m_ActiveOutPackage = null; } this.m_UsePreviousPackage = false; } }
internal PackageEnvelope GetActiveOutPackage() { PackageEnvelope activeOutPackage; try { lock (this.ioSyncObject) { if (this.m_UsePreviousPackage && (this.m_PreviousOutPackage != null)) { return(this.m_PreviousOutPackage); } if ((this.m_ActiveOutPackage == null) && (this.m_inQueue.Count > 0)) { this.m_ActiveOutPackage = this.m_inQueue.Dequeue(); this.m_ActiveOutPackage.OutputTime.Start(); if (!this.m_ActiveOutPackage.IsReadOnly) { this.m_inputQueue.Enqueue(this.m_ActiveOutPackage); } } if (this.m_UsePreviousPackage && (this.m_PreviousOutPackage == null)) { this.m_PreviousOutPackage = this.m_ActiveOutPackage; this.m_ActiveOutPackage = null; } } activeOutPackage = this.m_ActiveOutPackage; } catch (Exception exception) { this.m_log.Error(exception.ToString()); throw; } return(activeOutPackage); }
public void Add(PackageEnvelope package) { package.Package.ResetCursors(); this.m_inQueue.Enqueue(package); package.EnqueueingTime.Stop(); }