Skip to content
Snippets Groups Projects
Commit ee396520 authored by Stéphane Poirier's avatar Stéphane Poirier
Browse files

[PropertyHelper] always write value the 1st time

parent df13ed08
No related branches found
No related tags found
No related merge requests found
......@@ -108,7 +108,7 @@ private:
template <class T>
static bool value_cache(Tango::DeviceImpl* dev_p, const std::string& name,
T val, std::map<DevAttrPair, T>* values_cache_p,
bool memorized, bool store);
bool store);
template<typename T>
struct ValueComp
......
......@@ -34,7 +34,7 @@ namespace yat4tango
{
#define FLOAT_PRECISION float(1e-8)
#define DOUBLE_PRECISION 1e-15
#define DOUBLE_PRECISION double(1e-15)
//-------------------------------------------------------------------------
// Comparison functors specialization for floatting point numbers
......@@ -98,7 +98,7 @@ template <class T>
bool PropertyHelper::value_cache(Tango::DeviceImpl* dev_p,
const std::string& name, T val,
std::map<DevAttrPair, T>* values_cache_p,
bool memorized, bool store)
bool store)
{
typedef typename std::map<DevAttrPair, T>::const_iterator MapIterator;
static yat::Mutex s_mtx;
......@@ -122,22 +122,9 @@ bool PropertyHelper::value_cache(Tango::DeviceImpl* dev_p,
T last_val;
if( (*values_cache_p).end() == it )
{
try
{
// Value not cached yet, read it from database
if( memorized )
// memorized value
last_val = get_memorized_attribute<T>(dev_p, name);
else
// ordinary property
last_val = get_property<T>(dev_p, name);
}
catch(...)
{
// probably no value in database yet
// Value not cached yet
return true;
}
}
else
last_val = it->second;
......@@ -160,7 +147,7 @@ bool PropertyHelper::cache_property_value(Tango::DeviceImpl* dev_p,
typedef typename std::map<DevAttrPair, T> LastMemValues;
static LastMemValues s_memorized_values;
return value_cache(dev_p, property_name, val, &s_memorized_values, false, store);
return value_cache(dev_p, property_name, val, &s_memorized_values, store);
}
//-------------------------------------------------------------------------
......@@ -294,7 +281,7 @@ bool PropertyHelper::cache_memorized_attribute(Tango::DeviceImpl* dev_p,
typedef typename std::map<DevAttrPair, T> LastMemValues;
static LastMemValues s_memorized_values;
return value_cache(dev_p, attribute_name, val, &s_memorized_values, true, store);
return value_cache(dev_p, attribute_name, val, &s_memorized_values, store);
}
//-------------------------------------------------------------------------
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment