WPILibC++ 2023.4.3-108-ge5452e3
|
The UnlimitedHandleResource class is a way to track handles. More...
#include <hal/handles/UnlimitedHandleResource.h>
Public Member Functions | |
UnlimitedHandleResource ()=default | |
UnlimitedHandleResource (const UnlimitedHandleResource &)=delete | |
UnlimitedHandleResource & | operator= (const UnlimitedHandleResource &)=delete |
THandle | Allocate (std::shared_ptr< TStruct > structure) |
int16_t | GetIndex (THandle handle) |
std::shared_ptr< TStruct > | Get (THandle handle) |
std::shared_ptr< TStruct > | Free (THandle handle) |
void | ResetHandles () override |
template<typename Functor > | |
void | ForEach (Functor func) |
Public Member Functions inherited from hal::HandleBase | |
HandleBase () | |
~HandleBase () | |
HandleBase (const HandleBase &)=delete | |
HandleBase & | operator= (const HandleBase &)=delete |
virtual void | ResetHandles () |
Friends | |
class | UnlimitedHandleResourceTest |
Additional Inherited Members | |
Static Public Member Functions inherited from hal::HandleBase | |
static void | ResetGlobalHandles () |
Protected Attributes inherited from hal::HandleBase | |
int16_t | m_version |
The UnlimitedHandleResource class is a way to track handles.
This version allows an unlimited number of handles that are allocated sequentially. When possible, indices are reused to save memory usage and keep the array length down. However, automatic array management has not been implemented, but might be in the future. Because we have to loop through the allocator, we must use a global mutex.
THandle | The Handle Type (Must be typedefed from HAL_Handle) |
TStruct | The struct type held by this resource |
enumValue | The type value stored in the handle |
|
default |
|
delete |
THandle hal::UnlimitedHandleResource< THandle, TStruct, enumValue >::Allocate | ( | std::shared_ptr< TStruct > | structure | ) |
void hal::UnlimitedHandleResource< THandle, TStruct, enumValue >::ForEach | ( | Functor | func | ) |
std::shared_ptr< TStruct > hal::UnlimitedHandleResource< THandle, TStruct, enumValue >::Free | ( | THandle | handle | ) |
std::shared_ptr< TStruct > hal::UnlimitedHandleResource< THandle, TStruct, enumValue >::Get | ( | THandle | handle | ) |
|
inline |
|
delete |
|
overridevirtual |
Reimplemented from hal::HandleBase.
|
friend |