hudson.model
Class ResourceController

java.lang.Object
  extended by hudson.model.ResourceController
Direct Known Subclasses:
Queue

public class ResourceController
extends Object

Controls mutual exclusion of ResourceList.

Author:
Kohsuke Kawaguchi

Constructor Summary
ResourceController()
           
 
Method Summary
 boolean canRun(ResourceList resources)
          Checks if an activity that requires the given resource list can run immediately.
 void execute(Runnable task, ResourceActivity activity)
          Performs the task that requires the given list of resources.
 ResourceActivity getBlockingActivity(ResourceActivity activity)
          Of the activities that are in progress, return one that's blocking the given activity, or null if it's not blocked (and thus the given activity can be executed immediately.)
 Resource getMissingResource(ResourceList resources)
          Of the resource in the given resource list, return the one that's currently in use.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ResourceController

public ResourceController()
Method Detail

execute

public void execute(Runnable task,
                    ResourceActivity activity)
             throws InterruptedException
Performs the task that requires the given list of resources.

The execution is blocked until the resource is available.

Throws:
InterruptedException - the thread can be interrupted while waiting for the available resources.

canRun

public boolean canRun(ResourceList resources)
Checks if an activity that requires the given resource list can run immediately.

This method is really only useful as a hint, since another activity might acquire resources before the caller gets to call execute(Runnable, ResourceActivity).


getMissingResource

public Resource getMissingResource(ResourceList resources)
Of the resource in the given resource list, return the one that's currently in use.

If more than one such resource exists, one is chosen and returned. This method is used for reporting what's causing the blockage.


getBlockingActivity

public ResourceActivity getBlockingActivity(ResourceActivity activity)
Of the activities that are in progress, return one that's blocking the given activity, or null if it's not blocked (and thus the given activity can be executed immediately.)



Copyright © 2004-2013. All Rights Reserved.