#include "dbus_impl_pdr.hpp"

#include "utils.hpp"
#include "xyz/openbmc_project/Common/error.hpp"

#include <iostream>

#include "libpldm/pdr.h"
#include "libpldm/pldm_types.h"

using namespace sdbusplus::xyz::openbmc_project::Common::Error;

namespace pldm
{
namespace dbus_api
{

std::vector<std::vector<uint8_t>> Pdr::findStateEffecterPDR(uint8_t tid,
                                                            uint16_t entityID,
                                                            uint16_t stateSetId)
{
    auto pdrs =
        pldm::utils::findStateEffecterPDR(tid, entityID, stateSetId, pdrRepo);

    if (pdrs.empty())
    {
        throw ResourceNotFound();
    }

    return pdrs;
}
} // namespace dbus_api
} // namespace pldm
