in XmlProfileParser/XmlProfileParser.cpp [454:591]
HRESULT XmlProfileParser::_ParseTimeSpan(IXMLDOMNode *pXmlNode, TimeSpan *pTimeSpan, vector<pair<string, bool>>& vSubsts)
{
UINT32 ulDuration;
HRESULT hr = _GetUINT32(pXmlNode, "Duration", &ulDuration);
if (SUCCEEDED(hr) && (hr != S_FALSE))
{
pTimeSpan->SetDuration(ulDuration);
}
if (SUCCEEDED(hr))
{
UINT32 ulWarmup;
hr = _GetUINT32(pXmlNode, "Warmup", &ulWarmup);
if (SUCCEEDED(hr) && (hr != S_FALSE))
{
pTimeSpan->SetWarmup(ulWarmup);
}
}
if (SUCCEEDED(hr))
{
UINT32 ulCooldown;
hr = _GetUINT32(pXmlNode, "Cooldown", &ulCooldown);
if (SUCCEEDED(hr) && (hr != S_FALSE))
{
pTimeSpan->SetCooldown(ulCooldown);
}
}
if (SUCCEEDED(hr))
{
UINT32 ulRandSeed;
hr = _GetUINT32(pXmlNode, "RandSeed", &ulRandSeed);
if (SUCCEEDED(hr) && (hr != S_FALSE))
{
pTimeSpan->SetRandSeed(ulRandSeed);
}
}
if (SUCCEEDED(hr))
{
bool fRandomWriteData;
hr = _GetBool(pXmlNode, "RandomWriteData", &fRandomWriteData);
if (SUCCEEDED(hr) && (hr != S_FALSE))
{
pTimeSpan->SetRandomWriteData(fRandomWriteData);
}
}
if (SUCCEEDED(hr))
{
UINT32 ulThreadCount;
hr = _GetUINT32(pXmlNode, "ThreadCount", &ulThreadCount);
if (SUCCEEDED(hr) && (hr != S_FALSE))
{
pTimeSpan->SetThreadCount(ulThreadCount);
}
}
if (SUCCEEDED(hr))
{
UINT32 ulRequestCount;
hr = _GetUINT32(pXmlNode, "RequestCount", &ulRequestCount);
if (SUCCEEDED(hr) && (hr != S_FALSE))
{
pTimeSpan->SetRequestCount(ulRequestCount);
}
}
if (SUCCEEDED(hr))
{
bool fDisableAffinity;
hr = _GetBool(pXmlNode, "DisableAffinity", &fDisableAffinity);
if (SUCCEEDED(hr) && (hr != S_FALSE))
{
pTimeSpan->SetDisableAffinity(fDisableAffinity);
}
}
if (SUCCEEDED(hr))
{
bool fCompletionRoutines;
hr = _GetBool(pXmlNode, "CompletionRoutines", &fCompletionRoutines);
if (SUCCEEDED(hr) && (hr != S_FALSE))
{
pTimeSpan->SetCompletionRoutines(fCompletionRoutines);
}
}
if (SUCCEEDED(hr))
{
bool fMeasureLatency;
hr = _GetBool(pXmlNode, "MeasureLatency", &fMeasureLatency);
if (SUCCEEDED(hr) && (hr != S_FALSE))
{
pTimeSpan->SetMeasureLatency(fMeasureLatency);
}
}
if (SUCCEEDED(hr))
{
bool fCalculateIopsStdDev;
hr = _GetBool(pXmlNode, "CalculateIopsStdDev", &fCalculateIopsStdDev);
if (SUCCEEDED(hr) && (hr != S_FALSE))
{
pTimeSpan->SetCalculateIopsStdDev(fCalculateIopsStdDev);
}
}
if (SUCCEEDED(hr))
{
UINT32 ulIoBucketDuration;
hr = _GetUINT32(pXmlNode, "IoBucketDuration", &ulIoBucketDuration);
if (SUCCEEDED(hr) && (hr != S_FALSE))
{
pTimeSpan->SetIoBucketDurationInMilliseconds(ulIoBucketDuration);
}
}
// Look for downlevel non-group aware assignment
if (SUCCEEDED(hr))
{
hr = _ParseAffinityAssignment(pXmlNode, pTimeSpan);
}
// Look for uplevel group aware assignment.
if (SUCCEEDED(hr))
{
hr = _ParseAffinityGroupAssignment(pXmlNode, pTimeSpan);
}
if (SUCCEEDED(hr))
{
hr = _ParseTargets(pXmlNode, pTimeSpan, vSubsts);
}
return hr;
}