1 #ifndef CACHED_VALUE_H_
2 #define CACHED_VALUE_H_
84 volatile T m_previous_value;
95 m_value = initialValue;
96 m_cache_cycles = cacheCycles;
97 enableCaching(cacheCycles);
99 m_has_been_set =
true;
106 m_has_new_value =
false;
107 m_has_been_set =
false;
109 m_previous_value = T();
116 m_has_been_set =
true;
118 if (m_previous_value == newValue)
131 m_has_new_value =
false;
132 m_previous_value = m_value;
145 m_has_new_value =
true;
152 if (!m_is_caching || ++m_counter >= m_cache_cycles)
163 if (cacheCycles != -1)
165 m_cache_cycles = cacheCycles;
172 m_is_caching =
false;
178 return m_has_been_set && (m_has_new_value || !m_is_caching);
184 return m_has_been_set;