예제 #1
0
void DomainPowerControl_001::setPowerControl(UIntN participantIndex, UIntN domainIndex, const PowerControlStatusSet& powerControlStatusSet)
{
    validatePowerControlStatus(powerControlStatusSet, domainIndex);
    programPowerControl(powerControlStatusSet, domainIndex);
    DELETE_MEMORY_TC(m_powerControlStatusSet);
    m_powerControlStatusSet = new PowerControlStatusSet(powerControlStatusSet);
}
예제 #2
0
void DomainPowerControl_001::setPowerControl(UIntN participantIndex, UIntN domainIndex, const PowerControlStatusSet& powerControlStatusSet)
{
    checkAndCreateControlStructures(domainIndex);

    if (powerControlStatusSet.getCount() > PowerControlType::max)
    {
        throw dptf_exception("Too many power controls in the set!");
    }

    for (UIntN i = 0; i < powerControlStatusSet.getCount(); i++)
    {
        validatePowerControlStatus(powerControlStatusSet[i]);

        programPowerControl(powerControlStatusSet[i], domainIndex);
    }

    // Update control set
    delete m_powerControlStatusSet;
    m_powerControlStatusSet = new PowerControlStatusSet(powerControlStatusSet);
}