WPILib  2014.0
WPIRoboticsLibraryforFRC
 All Classes Functions Variables Pages
Public Member Functions | Static Public Member Functions | List of all members
Resource Class Reference

#include <Resource.h>

Inheritance diagram for Resource:
ErrorBase

Public Member Functions

virtual ~Resource ()
 
uint32_t Allocate (const char *resourceDesc)
 
uint32_t Allocate (uint32_t index, const char *resourceDesc)
 
void Free (uint32_t index)
 
- Public Member Functions inherited from ErrorBase
virtual Error & GetError ()
 Retrieve the current error. Get the current error information associated with this sensor.
 
virtual const Error & GetError () const
 
virtual void SetErrnoError (const char *contextMessage, const char *filename, const char *function, uint32_t lineNumber) const
 Set error information associated with a C library call that set an error to the "errno" global variable. More...
 
virtual void SetImaqError (int success, const char *contextMessage, const char *filename, const char *function, uint32_t lineNumber) const
 Set the current error information associated from the nivision Imaq API. More...
 
virtual void SetError (Error::Code code, const char *contextMessage, const char *filename, const char *function, uint32_t lineNumber) const
 Set the current error information associated with this sensor. More...
 
virtual void SetWPIError (const char *errorMessage, const char *contextMessage, const char *filename, const char *function, uint32_t lineNumber) const
 Set the current error information associated with this sensor. More...
 
virtual void CloneError (ErrorBase *rhs) const
 
virtual void ClearError () const
 Clear the current error information associated with this sensor.
 
virtual bool StatusIsFatal () const
 Check if the current error code represents a fatal error. More...
 

Static Public Member Functions

static void CreateResourceObject (Resource **r, uint32_t elements)
 
- Static Public Member Functions inherited from ErrorBase
static void SetGlobalError (Error::Code code, const char *contextMessage, const char *filename, const char *function, uint32_t lineNumber)
 
static void SetGlobalWPIError (const char *errorMessage, const char *contextMessage, const char *filename, const char *function, uint32_t lineNumber)
 
static Error & GetGlobalError ()
 

Additional Inherited Members

- Protected Member Functions inherited from ErrorBase
 ErrorBase ()
 Initialize the instance status to 0 for now.
 
- Protected Attributes inherited from ErrorBase
Error m_error
 
- Static Protected Attributes inherited from ErrorBase
static SEM_ID _globalErrorMutex = semMCreate(SEM_Q_PRIORITY | SEM_DELETE_SAFE | SEM_INVERSION_SAFE)
 
static Error _globalError
 

Detailed Description

The Resource class is a convenient way to track allocated resources. It tracks them as indicies in the range [0 .. elements - 1]. E.g. the library uses this to track hardware channel allocation.

The Resource class does not allocate the hardware channels or other resources; it just tracks which indices were marked in use by Allocate and not yet freed by Free.

Constructor & Destructor Documentation

Resource::~Resource ( )
virtual

Delete the allocated array or resources. This happens when the module is unloaded (provided it was statically allocated).

Member Function Documentation

uint32_t Resource::Allocate ( const char *  resourceDesc)

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.

uint32_t Resource::Allocate ( uint32_t  index,
const char *  resourceDesc 
)

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::CreateResourceObject ( Resource **  r,
uint32_t  elements 
)
static

Factory method to create a Resource allocation-tracker if needed.

Parameters
r– address of the caller's Resource pointer. If *r == NULL, this will construct a Resource and make *r point to it. If *r != NULL, i.e. the caller already has a Resource instance, this won't do anything.
elements– the number of elements for this Resource allocator to track, that is, it will allocate resource numbers in the range [0 .. elements - 1].
void Resource::Free ( uint32_t  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.


The documentation for this class was generated from the following files: