Example #1
0
/*
** Reads and binds secondary measures (MeasureName2 - MeasureNameN).
**
*/
void Meter::BindSecondaryMeasures(ConfigParser& parser, const WCHAR* section)
{
    if (!m_Measures.empty())
    {
        WCHAR tmpName[64];

        int i = 2;
        do
        {
            _snwprintf_s(tmpName, _TRUNCATE, L"MeasureName%i", i);
            const std::wstring& measureName = parser.ReadString(section, tmpName, L"");
            Measure* measure = parser.GetMeasure(measureName);
            if (measure)
            {
                m_Measures.push_back(measure);
            }
            else
            {
                if (!measureName.empty())
                {
                    LogErrorF(this, L"MeasureName%i=%s is not valid", i, measureName.c_str());
                }

                break;
            }
            ++i;
        }
        while (true);
    }
}
Example #2
0
/*
** Overwritten method to handle the secondary measure binding.
**
*/
void MeterHistogram::BindMeasures(ConfigParser& parser, const WCHAR* section)
{
	if (BindPrimaryMeasure(parser, section, false))
	{
		const std::wstring* secondaryMeasure = &parser.ReadString(section, L"MeasureName2", L"");
		if (secondaryMeasure->empty())
		{
			// For backwards compatibility.
			secondaryMeasure = &parser.ReadString(section, L"SecondaryMeasureName", L"");
		}

		Measure* measure = parser.GetMeasure(*secondaryMeasure);
		if (measure)
		{
			m_Measures.push_back(measure);
		}
	}
}
Example #3
0
/*
** Reads and binds the primary MeasureName. This must always be called in overridden
** BindMeasures() implementations.
**
*/
bool Meter::BindPrimaryMeasure(ConfigParser& parser, const WCHAR* section, bool optional)
{
    m_Measures.clear();

    const std::wstring& measureName = parser.ReadString(section, L"MeasureName", L"");

    Measure* measure = parser.GetMeasure(measureName);
    if (measure)
    {
        m_Measures.push_back(measure);
        return true;
    }
    else if (!optional)
    {
        LogErrorF(this, L"MeasureName=%s is not valid", measureName.c_str());
    }

    return false;
}