#pragma once | |
#include <bitset> | |
namespace pldm | |
{ | |
constexpr size_t maxInstanceIds = 32; | |
/** @class InstanceId | |
* @brief Implementation of PLDM instance id as per DSP0240 v1.0.0 | |
*/ | |
class InstanceId | |
{ | |
public: | |
/** @brief Get next unused instance id | |
* @return - PLDM instance id | |
*/ | |
uint8_t next(); | |
/** @brief Mark an instance id as unused | |
* @param[in] instanceId - PLDM instance id to be freed | |
*/ | |
void markFree(uint8_t instanceId) | |
{ | |
id.set(instanceId, false); | |
} | |
private: | |
std::bitset<maxInstanceIds> id; | |
}; | |
} // namespace pldm |