From 1fa4f47689736e6816fd83d5a4fdfb7e26706faf Mon Sep 17 00:00:00 2001
From: amichelo <andrea.michelotti@lnf.infn.it>
Date: Wed, 27 Oct 2021 10:35:47 +0200
Subject: [PATCH] sync on property read

---
 .../control_manager/AbstractControlUnit.cpp       | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/chaos/cu_toolkit/control_manager/AbstractControlUnit.cpp b/chaos/cu_toolkit/control_manager/AbstractControlUnit.cpp
index 79d521ce2..695b55e0b 100644
--- a/chaos/cu_toolkit/control_manager/AbstractControlUnit.cpp
+++ b/chaos/cu_toolkit/control_manager/AbstractControlUnit.cpp
@@ -461,9 +461,20 @@ void AbstractControlUnit::_defineActionAndDataset(CDataWrapper& setup_configurat
   PropertyCollector::fillDescription("property", setup_configuration);
 }
 chaos::common::data::CDWUniquePtr AbstractControlUnit::getProperty(chaos::common::data::CDWUniquePtr data) {
-  chaos::common::data::CDWUniquePtr ret = getProperties();
-  ACULDBG_ << "get CU properties:" << ((ret.get()) ? ret->getJSONString() : "");
+  bool sync=true;
+   chaos::common::data::CDWUniquePtr ret ;
+  if(data.get()&&data->hasKey("sync")){
+    sync=data->getBoolValue("sync");
+  }
+  if(data.get()&&data->hasKey("name")){
+    std::string name=data->getStringValue("name");
+    ret=syncRead(name);
+    ACULDBG_ << "get CU property :" <<name<<" ="<< ((ret.get()) ? ret->getJSONString() : "");
 
+    return ret;
+  }
+  ret= getProperties(sync);
+  ACULDBG_ << "get CU properties:" << ((ret.get()) ? ret->getJSONString() : "");
   return ret;
 }
 chaos::common::data::CDWUniquePtr AbstractControlUnit::setProperty(chaos::common::data::CDWUniquePtr data) {
-- 
GitLab