WPILibC++ 2027.0.0-alpha-4
Loading...
Searching...
No Matches
wpi::hal::LimitedClassedHandleResource< THandle, TStruct, size, enumValue > Class Template Reference

The LimitedClassedHandleResource class is a way to track handles. More...

#include <wpi/hal/handles/LimitedClassedHandleResource.hpp>

Inheritance diagram for wpi::hal::LimitedClassedHandleResource< THandle, TStruct, size, enumValue >:
wpi::hal::HandleBase

Public Member Functions

 LimitedClassedHandleResource ()=default
 LimitedClassedHandleResource (const LimitedClassedHandleResource &)=delete
LimitedClassedHandleResourceoperator= (const LimitedClassedHandleResource &)=delete
THandle Allocate (std::shared_ptr< TStruct > toSet)
int16_t GetIndex (THandle handle)
std::shared_ptr< TStruct > Get (THandle handle)
void Free (THandle handle)
void ResetHandles () override
Public Member Functions inherited from wpi::hal::HandleBase
 HandleBase ()
 ~HandleBase ()
 HandleBase (const HandleBase &)=delete
HandleBaseoperator= (const HandleBase &)=delete

Friends

class LimitedClassedHandleResourceTest

Additional Inherited Members

Static Public Member Functions inherited from wpi::hal::HandleBase
static void ResetGlobalHandles ()
Protected Attributes inherited from wpi::hal::HandleBase
int16_t m_version

Detailed Description

template<typename THandle, typename TStruct, int16_t size, HAL_HandleEnum enumValue>
class wpi::hal::LimitedClassedHandleResource< THandle, TStruct, size, enumValue >

The LimitedClassedHandleResource class is a way to track handles.

This version allows a limited number of handles that are allocated sequentially.

Template Parameters
THandleThe Handle Type (Must be typedefed from HAL_Handle)
TStructThe struct type held by this resource
sizeThe number of resources allowed to be allocated
enumValueThe type value stored in the handle

Constructor & Destructor Documentation

◆ LimitedClassedHandleResource() [1/2]

template<typename THandle, typename TStruct, int16_t size, HAL_HandleEnum enumValue>
wpi::hal::LimitedClassedHandleResource< THandle, TStruct, size, enumValue >::LimitedClassedHandleResource ( )
default

◆ LimitedClassedHandleResource() [2/2]

template<typename THandle, typename TStruct, int16_t size, HAL_HandleEnum enumValue>
wpi::hal::LimitedClassedHandleResource< THandle, TStruct, size, enumValue >::LimitedClassedHandleResource ( const LimitedClassedHandleResource< THandle, TStruct, size, enumValue > & )
delete

Member Function Documentation

◆ Allocate()

template<typename THandle, typename TStruct, int16_t size, HAL_HandleEnum enumValue>
THandle wpi::hal::LimitedClassedHandleResource< THandle, TStruct, size, enumValue >::Allocate ( std::shared_ptr< TStruct > toSet)

◆ Free()

template<typename THandle, typename TStruct, int16_t size, HAL_HandleEnum enumValue>
void wpi::hal::LimitedClassedHandleResource< THandle, TStruct, size, enumValue >::Free ( THandle handle)

◆ Get()

template<typename THandle, typename TStruct, int16_t size, HAL_HandleEnum enumValue>
std::shared_ptr< TStruct > wpi::hal::LimitedClassedHandleResource< THandle, TStruct, size, enumValue >::Get ( THandle handle)

◆ GetIndex()

template<typename THandle, typename TStruct, int16_t size, HAL_HandleEnum enumValue>
int16_t wpi::hal::LimitedClassedHandleResource< THandle, TStruct, size, enumValue >::GetIndex ( THandle handle)
inline

◆ operator=()

template<typename THandle, typename TStruct, int16_t size, HAL_HandleEnum enumValue>
LimitedClassedHandleResource & wpi::hal::LimitedClassedHandleResource< THandle, TStruct, size, enumValue >::operator= ( const LimitedClassedHandleResource< THandle, TStruct, size, enumValue > & )
delete

◆ ResetHandles()

template<typename THandle, typename TStruct, int16_t size, HAL_HandleEnum enumValue>
void wpi::hal::LimitedClassedHandleResource< THandle, TStruct, size, enumValue >::ResetHandles ( )
overridevirtual

Reimplemented from wpi::hal::HandleBase.

◆ LimitedClassedHandleResourceTest

template<typename THandle, typename TStruct, int16_t size, HAL_HandleEnum enumValue>
friend class LimitedClassedHandleResourceTest
friend

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