示例#1
0
 protected virtual void DoPut(ContainerPut put)
 {
     if (Capacity - Level >= put.Amount)
     {
         PutWaitingTime?.Add(Environment.ToDouble(Environment.Now - put.Time));
         Level += put.Amount;
         put.Succeed();
     }
 }
示例#2
0
 protected virtual void DoPut(StorePut put)
 {
     if (Items.Count < Capacity)
     {
         PutWaitingTime?.Add(Environment.ToDouble(Environment.Now - put.Time));
         Items.Add(new StoreItem()
         {
             AdmissionDate = Environment.Now, Item = put.Value
         });
         put.Succeed();
     }
 }
示例#3
0
 protected virtual void DoPut(StorePut put)
 {
     if (Items.Count < Capacity)
     {
         var pi = (PriorityItem)put.Value;
         PutWaitingTime?.Add(Environment.ToDouble(Environment.Now - put.Time));
         Items.Enqueue(new StoreItem()
         {
             AdmissionDate = Environment.Now, Item = pi.Item
         }, pi.Priority);
         put.Succeed();
     }
 }