#include <Resource.h>
Public Member Functions | |
virtual | ~Resource (void) |
unsigned | Allocate (void) |
unsigned | Allocate (unsigned index) |
void | Free (unsigned index) |
Protected Member Functions | |
Resource (unsigned size) |
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.
Resource::~Resource | ( | void | ) | [virtual] |
Delete the allocated array or resources. This happens when the module is unloaded (provided it was statically allocated).
Resource::Resource | ( | unsigned | elements | ) | [protected] |
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.
unsigned Resource::Allocate | ( | void | ) |
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.
unsigned Resource::Allocate | ( | unsigned | index | ) |
Allocate a specific resource value. The user requests a specific resource value, i.e. channel number and it is verified unallocated, then returned.
void Resource::Free | ( | unsigned | 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.