From d2b330b287139ac5e89b647a58abc05544c75d31 Mon Sep 17 00:00:00 2001
From: amichelo <andrea.michelotti@lnf.infn.it>
Date: Thu, 15 Sep 2022 23:06:06 +0200
Subject: [PATCH] no exception on getRO and getRW

---
 .../control_manager/AttributeSharedCacheWrapper.h      | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/chaos/cu_toolkit/control_manager/AttributeSharedCacheWrapper.h b/chaos/cu_toolkit/control_manager/AttributeSharedCacheWrapper.h
index 998a1f5f7..b858e6e6f 100644
--- a/chaos/cu_toolkit/control_manager/AttributeSharedCacheWrapper.h
+++ b/chaos/cu_toolkit/control_manager/AttributeSharedCacheWrapper.h
@@ -46,6 +46,7 @@ namespace chaos{
 				T * getRWPtr(SharedCacheDomain domain,
 							 const std::string& attribute_name) {
 					CHAOS_ASSERT(attribute_value_shared_cache)
+					
 					switch(domain) {
 						case DOMAIN_INPUT:
 						  /*	throw CException(-1, "Input variable domain can't be used as read write pointer", __PRETTY_FUNCTION__);
@@ -57,6 +58,10 @@ namespace chaos{
 						default:
 							break;
 					}
+					if(!attribute_value_shared_cache->hasAttribute(domain,attribute_name)){
+						LERR_<<__PRETTY_FUNCTION__<<" cannot find "<<attribute_name<<" in "<<domain;
+						return NULL;
+					}
 					AttributeValue *value_setting = attribute_value_shared_cache->getAttributeValue(domain, attribute_name);
 					return value_setting->getValuePtr<T>();
 				}
@@ -66,6 +71,11 @@ namespace chaos{
 				const T * getROPtr(SharedCacheDomain domain,
 								   const std::string& attribute_name) {
 					CHAOS_ASSERT(attribute_value_shared_cache)
+					if(!attribute_value_shared_cache->hasAttribute(domain,attribute_name)){
+						LERR_<<__PRETTY_FUNCTION__<<" cannot find "<<attribute_name<<" in "<<domain;
+
+						return NULL;
+					}
 					AttributeValue *value_setting = attribute_value_shared_cache->getAttributeValue(domain, attribute_name);
 					
 					return (const T *)value_setting->getValuePtr<T>();
-- 
GitLab