コード例 #1
0
 protected virtual void DoRelease(Release release)
 {
     if (!Users.Remove(release.Request))
     {
         throw new InvalidOperationException("Released request does not have a user.");
     }
     release.Succeed();
 }
コード例 #2
0
ファイル: Resource.cs プロジェクト: t-h-e/HeuristicLab
 protected virtual void DoRelease(Release release) {
   if (!Users.Remove(release.Request)) {
     var current = RequestQueue.First;
     while (current != null && current.Value != release.Request)
       current = current.Next;
     if (current != null) RequestQueue.Remove(current);
   }
   release.Succeed();
 }
コード例 #3
0
 protected virtual void DoRelease(Release release)
 {
     if (!Users.Remove(release.Request))
     {
         throw new InvalidOperationException("Released request does not have a user.");
     }
     LeadTime?.Add(Environment.ToDouble(Environment.Now - release.Request.Time));
     release.Succeed();
 }
コード例 #4
0
        protected virtual void DoRelease(Release release)
        {
            var req = (PreemptiveRequest)release.Request;

            if (!Users.Remove(req) && !req.IsPreempted)
            {
                throw new InvalidOperationException("Released request does not have a user.");
            }
            release.Succeed();
        }
コード例 #5
0
 protected virtual void DoRelease(Release release) {
   if (!Users.Remove(release.Request)) {
     var prioRequest = release.Request as PriorityRequest;
     if (prioRequest != null) {
       var current = RequestQueue[prioRequest.Priority].First;
       while (current != null && current.Value != release.Request)
         current = current.Next;
       if (current != null) RequestQueue[prioRequest.Priority].Remove(current);
     }
   }
   release.Succeed();
 }
コード例 #6
0
ファイル: Resource.cs プロジェクト: benpope82/SimSharp
 protected virtual void DoRelease(Release release)
 {
     if (!Users.Remove(release.Request))
     {
         var current = RequestQueue.First;
         while (current != null && current.Value != release.Request)
         {
             current = current.Next;
         }
         if (current != null)
         {
             RequestQueue.Remove(current);
         }
     }
     release.Succeed();
 }
コード例 #7
0
 protected virtual void DoRelease(Release release)
 {
     if (!Users.Remove(release.Request))
     {
         var preemptRequest = release.Request as PreemptiveRequest;
         if (preemptRequest != null)
         {
             var current = RequestQueue[preemptRequest.Priority].First;
             while (current != null && current.Value != release.Request)
             {
                 current = current.Next;
             }
             if (current != null)
             {
                 RequestQueue[preemptRequest.Priority].Remove(current);
             }
         }
     }
     release.Succeed();
 }
コード例 #8
0
 protected virtual void DoRelease(Release release)
 {
     Resources.Add(release.Request.Value);
     release.Succeed();
 }
コード例 #9
0
 protected virtual void DoRelease(Release release) {
   Resources.Add(release.Request.Value);
   release.Succeed();
 }
コード例 #10
0
 protected virtual void DoRelease(Release release)
 {
     Users.Remove(release.Request);
     release.Succeed();
 }
コード例 #11
0
 protected virtual void DoRelease(Release release)
 {
     Users.Remove(release.Request);
     InUse -= release.Request.Quantity;
     release.Succeed();
 }
コード例 #12
0
ファイル: Resource.cs プロジェクト: thunder176/HeuristicLab
 protected virtual void DoRelease(Release release) {
   Users.Remove(release.Request);
   release.Succeed();
 }
コード例 #13
0
ファイル: ResourcePool.cs プロジェクト: sdwfrost/SimSharp
 protected virtual void DoRelease(Release release)
 {
     Resources.Add(release.Request.Value);
     LeadTime?.Add(Environment.ToDouble(Environment.Now - release.Request.Time));
     release.Succeed();
 }