예제 #1
0
/*
** Updates the current net out value.
**
*/
bool CMeasureNetOut::Update()
{
	if (!CMeasureNet::PreUpdate()) return false;

	if (c_Table == NULL) return false;

	if (m_Cumulative)
	{
		m_Value = (double)(__int64)GetNetStatsValue(NET_OUT);
	}
	else
	{
		ULONG64 value = 0;

		if (!m_FirstTime)
		{
			value = GetNetOctets(NET_OUT);
			if (value > m_OutOctets)
			{
				ULONG64 tmpValue = value;
				value -= m_OutOctets;
				m_OutOctets = tmpValue;
			}
			else
			{
				m_OutOctets = value;
				value = 0;
			}
		}
		else
		{
			m_OutOctets = GetNetOctets(NET_OUT);
			m_FirstTime = false;
		}

		m_Value = (double)(__int64)value;
	}

	return PostUpdate();
}
예제 #2
0
void MeasureNet::UpdateValue()
{
	if (c_Table == nullptr) return;

	if (m_Cumulative)
	{
		m_Value = (double)(__int64)GetNetStatsValue(m_Net);
	}
	else
	{
		ULONG64 value = 0;

		if (!m_FirstTime)
		{
			value = GetNetOctets(m_Net);
			if (value > m_Octets)
			{
				ULONG64 tmpValue = value;
				value -= m_Octets;
				m_Octets = tmpValue;
			}
			else
			{
				m_Octets = value;
				value = 0;
			}
		}
		else
		{
			m_Octets = GetNetOctets(m_Net);
			m_FirstTime = false;
		}

		m_Value = (double)(__int64)value;
	}
}