#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
