コード例 #1
0
void WIPolicyPowerBossConditionsTableChanged::execute(void)
{
    writeWorkItemStartingInfoMessage();

    auto policyManager = getPolicyManager();
    UIntN policyListCount = policyManager->getPolicyListCount();

    for (UIntN i = 0; i < policyListCount; i++)
    {
        try
        {
            Policy* policy = policyManager->getPolicyPtr(i);
            policy->executePolicyPowerBossConditionsTableChanged();
        }
        catch (policy_index_invalid ex)
        {
            // do nothing.  No item in the policy list at this index.
        }
        catch (std::exception& ex)
        {
            writeWorkItemErrorMessagePolicy(ex, 
                "Policy::executePolicyPowerBossConditionsTableChanged", i);
        }
    }
}
コード例 #2
0
void WIPolicyOperatingSystemPlatformTypeChanged::execute(void)
{
	writeWorkItemStartingInfoMessage();

	auto policyManager = getPolicyManager();
	auto policyIndexes = policyManager->getPolicyIndexes();

	for (auto i = policyIndexes.begin(); i != policyIndexes.end(); ++i)
	{
		try
		{
			getDptfManager()->getEventCache()->platformType.set(m_platformType);
			Policy* policy = policyManager->getPolicyPtr(*i);
			policy->executePolicyOperatingSystemPlatformTypeChanged(m_platformType);
		}
		catch (policy_index_invalid& ex)
		{
			// do nothing.  No item in the policy list at this index.
		}
		catch (std::exception& ex)
		{
			writeWorkItemErrorMessagePolicy(ex, "Policy::executePolicyOperatingSystemPlatformTypeChanged", *i);
		}
	}
}
コード例 #3
0
void WIDptfConnectedStandbyEntry::execute(void)
{
	writeWorkItemStartingInfoMessage();

	// First let all policies know that we are entering connected standby

	auto policyManager = getPolicyManager();
	auto policyIndexes = policyManager->getPolicyIndexes();

	for (auto i = policyIndexes.begin(); i != policyIndexes.end(); ++i)
	{
		try
		{
			Policy* policy = policyManager->getPolicyPtr(*i);
			policy->executeConnectedStandbyEntry();
		}
		catch (policy_index_invalid& ex)
		{
			// do nothing.  No item in the policy list at this index.
		}
		catch (std::exception& ex)
		{
			writeWorkItemErrorMessagePolicy(ex, "Policy::executeConnectedStandbyEntry", *i);
		}
	}

	// Now let all participants know

	auto participantManager = getParticipantManager();
	auto participantIndexList = participantManager->getParticipantIndexes();

	for (auto i = participantIndexList.begin(); i != participantIndexList.end(); ++i)
	{
		try
		{
			Participant* participant = participantManager->getParticipantPtr(*i);
			participant->connectedStandbyEntry();
		}
		catch (participant_index_invalid& ex)
		{
			// do nothing.  No item in the participant list at this index.
		}
		catch (std::exception& ex)
		{
			writeWorkItemErrorMessageParticipant(ex, "Participant::connectedStandbyEntry", *i);
		}
	}
}
コード例 #4
0
ファイル: WIPolicyCreateAll.cpp プロジェクト: 01org/dptf
void WIPolicyCreateAll::execute(void)
{
	writeWorkItemStartingInfoMessage();

	try
	{
		EsifFileEnumerator fileEnumerator(m_policyDirectoryPath, "DptfPolicy*" ESIF_LIB_EXT);
		std::string policyFileName = fileEnumerator.getFirstFile();

		while (policyFileName.length() > 0)
		{
			try
			{
				std::string policyFilePath = m_policyDirectoryPath + policyFileName;
				if (getDptfManager()->isDptfPolicyLoadNameOnly())
				{
					policyFilePath.erase(0, m_policyDirectoryPath.length());
				}

				getDptfManager()->getPolicyManager()->createPolicy(policyFilePath);
			}
			catch (std::exception& ex)
			{
				writeWorkItemWarningMessage(ex, "PolicyManager::createPolicy", "Policy File Name", policyFileName);
			}
			catch (...)
			{
				dptf_exception ex("Unknown exception type caught when attempting to create a policy.");
				writeWorkItemWarningMessage(ex, "PolicyManager::createPolicy", "Policy File Name", policyFileName);
			}

			policyFileName = fileEnumerator.getNextFile();
		}
	}
	catch (std::exception& ex)
	{
		writeWorkItemErrorMessage(ex, "PolicyManager::createAllPolicies");
	}
	catch (...)
	{
		dptf_exception ex("Unknown exception type caught when attempting to create all policies.");
		writeWorkItemErrorMessage(ex, "PolicyManager::createAllPolicies");
	}
}
コード例 #5
0
void WIPolicyReload::execute(void)
{
    writeWorkItemStartingInfoMessage();

    // Iterate through the list of policies and unbind all participant and domains from them
    
    DptfManagerInterface* dptfManager = getDptfManager();
    auto policyManager = getPolicyManager();
    auto participantIndexList = getParticipantManager()->getParticipantIndexes();

    // Unbind every participant and domain from every policy
    for (auto participantIndex = participantIndexList.begin(); participantIndex != participantIndexList.end(); ++participantIndex)
    {
        dptfManager->unbindDomainsFromPolicies(*participantIndex);
        dptfManager->unbindParticipantFromPolicies(*participantIndex);
    }

    // No try-catch here because destroyAllPolicies' calling tree catches all exceptions.
    policyManager->destroyAllPolicies();

    try
    {
        policyManager->reloadAllPolicies(dptfManager->getDptfPolicyDirectoryPath());
    }
    catch (dptf_exception ex)
    {
        writeWorkItemErrorMessage(ex, "policyManager::reloadAllPolicies");
    }

    // Bind every participant and domain to every policy
    for (auto participantIndex = participantIndexList.begin(); participantIndex != participantIndexList.end(); ++participantIndex)
    {
        dptfManager->bindParticipantToPolicies(*participantIndex);
        dptfManager->bindDomainsToPolicies(*participantIndex);
    }
}
コード例 #6
0
void WIPolicyOemVariablesChanged::execute(void)
{
	writeWorkItemStartingInfoMessage();

	auto policyManager = getPolicyManager();
	auto policyIndexes = policyManager->getPolicyIndexes();

	for (auto i = policyIndexes.begin(); i != policyIndexes.end(); ++i)
	{
		try
		{
			Policy* policy = policyManager->getPolicyPtr(*i);
			policy->executePolicyOemVariablesChanged();
		}
		catch (policy_index_invalid& ex)
		{
			// do nothing.  No item in the policy list at this index.
		}
		catch (std::exception& ex)
		{
			writeWorkItemErrorMessagePolicy(ex, "Policy::executePolicyOemVariablesChanged", *i);
		}
	}
}