| #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 |