/// <summary> /// Tracks utilization of a particular resource. /// </summary> /// <param name="model">The parent model to which the resource, and this tracker, will belong.</param> public MultiResourceTracker(IModel model) { m_model = model; m_record = new ArrayList(); m_targets = new ArrayList(); m_rerFilter = ResourceEventRecordFilters.AllEvents; }
/// <summary> /// Tracks utilization of a particular resource. /// </summary> /// <param name="model">The parent model to which the resource, and this tracker, will belong.</param> /// <param name="target">The resource that this tracker will track.</param> public ResourceTracker(IModel model, IResource target) { m_model = model; m_target = target; m_rerFilter = ResourceEventRecordFilters.AllEvents; m_target.RequestEvent += m_target_RequestEvent; m_target.ReservedEvent += m_target_ReservedEvent; m_target.UnreservedEvent += m_target_UnreservedEvent; m_target.AcquiredEvent += m_target_AcquiredEvent; m_target.ReleasedEvent += m_target_ReleasedEvent; m_record = new ArrayList(); if (s_diagnostics) { _Debug.WriteLine(m_model.Executive.Now + " : Created a Resource Tracker focused on " + m_target.Name + " (" + m_target.Guid + ")."); } }
/// <summary> /// Creates a new instance of the <see cref="T:MultiResourceTracker"/> class. /// </summary> /// <param name="trackers">The trackers that are aggregated by this <see cref="T:MultiResourceTracker"/>.</param> public MultiResourceTracker(IResourceTracker[] trackers) { m_model = null; m_targets = new ArrayList(trackers); m_rerFilter = ResourceEventRecordFilters.AllEvents; }