Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| " 2013 FRC Java API "
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## edu.wpi.first.wpilibj
Class Resource

    java.lang.Object
      edu.wpi.first.wpilibj.Resource

    public class Resource

extends Object

Track resources in the program. The Resource class is a convenient way of keeping track of allocated arbitrary resources in the program. Resources are just indicies that have an lower and upper bound that are tracked by this class. In the library they are used for tracking allocation of hardware channels but this is purely arbitrary. The resource class does not do any actual allocation, but simply tracks if a given index is currently in use. WARNING: this should only be statically allocated. When the program loads into memory all the static constructors are called. At that time a linked list of all the "Resources" is created. Then when the program actually starts - in the Robot constructor, all resources are initialized. This ensures that the program is restartable in memory without having to unload/reload.

Constructor Summary
`Resource(int size)` Allocate storage for a new instance of Resource.

Method Summary
`int` | `allocate()` Allocate a resource.
`int` | `allocate(int index)` Allocate a specific resource value.
`void` | `free(int index)` Free an allocated resource.
`static void` | `restartProgram()` Clears all allocated resources

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### Resource

    public Resource(int size)

  Allocate storage for a new instance of Resource. Allocate a bool array of values that will get initialized to indicate that no resources have been allocated yet. The indicies of the resources are 0..size-1.

  Parameters:
    `size` - The number of blocks to allocate

Method Detail

### restartProgram

    public static void restartProgram()

  Clears all allocated resources

### allocate

    public int allocate()
                 throws CheckedAllocationException

  Allocate a resource. When a resource is requested, mark it allocated. In this case, a free resource value within the range is located and returned after it is marked allocated.

  Returns:
    The index of the allocated block.
  Throws:
    `CheckedAllocationException` - If there are no resources available to be allocated.

### allocate

    public int allocate(int index)
                 throws CheckedAllocationException

  Allocate a specific resource value. The user requests a specific resource value, i.e. channel number and it is verified unallocated, then returned.

  Parameters:
    `index` - The resource to allocate
  Returns:
    The index of the allocated block
  Throws:
    `CheckedAllocationException` - If there are no resources available to be allocated.

### free

    public void free(int index)

  Free an allocated resource. After a resource is no longer needed, for example a destructor is called for a channel assignment class, Free will release the resource value so it can be reused somewhere else in the program.

  Parameters:
    `index` - The index of the resource to free.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| " 2013 FRC Java API "
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

"
For updated information see the Java FRC site
"