Class ResourceManager<T,R extends IResource<T,C>,C extends IResourceConsumer<T,R,C>>

java.lang.Object
com.amalgamasimulation.resources.ResourceManager<T,R,C>

public class ResourceManager<T,R extends IResource<T,C>,C extends IResourceConsumer<T,R,C>> extends Object
  • Constructor Details

    • ResourceManager

      public ResourceManager(Engine engine)
  • Method Details

    • addResource

      public void addResource(R resource)
    • removeResource

      public void removeResource(R resource)
    • requestResources

      public ResourceRequest<T,R,C> requestResources(C consumer, double priority, boolean allowPreemption, ResourceManager.SeizeRule seizeRule, ResourceSet<T,R,C> resourceSet)
    • requestResources

      public ResourceRequest<T,R,C> requestResources(C consumer, double priority, boolean allowPreemption, ResourceManager.SeizeRule seizeRule, ResourceSet<T,R,C>... alternativeResourceSets)
    • requestResources

      public ResourceRequest<T,R,C> requestResources(C consumer, double priority, boolean allowPreemption, ResourceManager.SeizeRule seizeRule, List<ResourceSet<T,R,C>> alternativeResourceSets)
    • releaseResources

      public void releaseResources(R... resources)
    • releaseResources

      public void releaseResources(List<R> resources)
    • update

      public void update()
    • setRequestPriority

      public void setRequestPriority(ResourceRequest<T,R,C> request, double priority)
    • getRequirementTime

      public Accumulator<T> getRequirementTime()
    • resetRequirementTime

      public void resetRequirementTime()
    • getResourceTypes

      public List<T> getResourceTypes()
    • getResourcesCount

      public int getResourcesCount(T type)
    • getResourcesCountByTypes

      public Accumulator<T> getResourcesCountByTypes()
    • getRequirementTime

      public double getRequirementTime(T type)
    • cancelResourceRequest

      public boolean cancelResourceRequest(ResourceRequest<T,R,C> resourceRequest)