diff --git a/common/python/nomadcore/caching_backend.py b/common/python/nomadcore/caching_backend.py index 8652a0e09b0b7dd0e917d5d00173acb1b9ea6c84..e0f85954ebba20f155d5cfd8c0f602ad8843f928 100644 --- a/common/python/nomadcore/caching_backend.py +++ b/common/python/nomadcore/caching_backend.py @@ -15,6 +15,8 @@ class CachingLevel(object): Cache = 2 ForwardAndCache = 3 Ignore = 4 + PreOpenedCache = 5 + PreOpenedIgnore = 6 @classmethod def toText(cls, cl): @@ -26,6 +28,10 @@ class CachingLevel(object): return "Cache" elif cl == cls.Ignore: return "Ignore" + elif cl == cls.PreOpenedIgnore: + return "PreOpenedIgnore" + elif cl == cls.PreOpenedCache: + return "PreOpenedIgnore" else: return "CachingLevel(%s)" % cl @@ -273,7 +279,7 @@ class ActiveBackend(object): sectionManagers[ik.name] = CachingSectionManager( metaInfo = ik, parentSectionNames = parentS, - storeInSuper = (cachingLevel == CachingLevel.ForwardAndCache or cachingLevel == CachingLevel.Cache), + storeInSuper = (cachingLevel == CachingLevel.ForwardAndCache or cachingLevel == CachingLevel.Cache or cachingLevel == CachingLevel.PreOpenedCache), forwardOpenClose = (cachingLevel == CachingLevel.Forward or cachingLevel == CachingLevel.ForwardAndCache), onClose = onClose.get(ik.name, []), onOpen = onOpen.get(ik.name, [])) @@ -395,10 +401,10 @@ class ActiveBackend(object): a gIndex of -1 means the latest section""" dataManager = self.dataManagers[metaName] cachingLevel = dataManager.cachingLevel - if cachingLevel == CachingLevel.Forward or cachingLevel == CachingLevel.ForwardAndCache: + if cachingLevel == CachingLevel.Forward or cachingLevel == CachingLevel.ForwardAndCache or cachingLevel == CachingLevel.PreOpenedCache: if self.superBackend: self.superBackend.addValue(metaName, value, gIndex) - if cachingLevel == CachingLevel.ForwardAndCache or cachingLevel == CachingLevel.Cache: + if cachingLevel == CachingLevel.ForwardAndCache or cachingLevel == CachingLevel.Cache or cachingLevel == CachingLevel.PreOpenedCache: dataManager.superSectionManager.addValue(dataManager.metaInfo, value, gIndex) def addRealValue(self, metaName, value, gIndex = -1, unit=None): @@ -410,10 +416,10 @@ class ActiveBackend(object): dataManager = self.dataManagers[metaName] cachingLevel = dataManager.cachingLevel - if cachingLevel == CachingLevel.Forward or cachingLevel == CachingLevel.ForwardAndCache: + if cachingLevel == CachingLevel.Forward or cachingLevel == CachingLevel.ForwardAndCache or cachingLevel == CachingLevel.PreOpenedCache: if self.superBackend: self.superBackend.addRealValue(metaName, value, gIndex) - if cachingLevel == CachingLevel.ForwardAndCache or cachingLevel == CachingLevel.Cache: + if cachingLevel == CachingLevel.ForwardAndCache or cachingLevel == CachingLevel.Cache or cachingLevel == CachingLevel.PreOpenedCache: dataManager.superSectionManager.addRealValue(dataManager.metaInfo, value, gIndex) def addArray(self, metaName, shape, gIndex = -1): @@ -423,10 +429,10 @@ class ActiveBackend(object): the array is unitialized""" dataManager = self.dataManagers[metaName] cachingLevel = dataManager.cachingLevel - if cachingLevel == CachingLevel.Forward or cachingLevel == CachingLevel.ForwardAndCache: + if cachingLevel == CachingLevel.Forward or cachingLevel == CachingLevel.ForwardAndCache or cachingLevel == CachingLevel.PreOpenedCache: if self.superBackend: self.superBackend.addArray(metaName, shape, gIndex) - if cachingLevel == CachingLevel.ForwardAndCache or cachingLevel == CachingLevel.Cache: + if cachingLevel == CachingLevel.ForwardAndCache or cachingLevel == CachingLevel.Cache or cachingLevel == CachingLevel.PreOpenedCache: dataManager.superSectionManager.addArray(dataManager.metaInfo, shape, gIndex) def setArrayValues(self, metaName, values, offset = None, gIndex = -1, unit=None): @@ -436,10 +442,10 @@ class ActiveBackend(object): dataManager = self.dataManagers[metaName] cachingLevel = dataManager.cachingLevel - if cachingLevel == CachingLevel.Forward or cachingLevel == CachingLevel.ForwardAndCache: + if cachingLevel == CachingLevel.Forward or cachingLevel == CachingLevel.ForwardAndCache or cachingLevel == CachingLevel.PreOpenedCache: if self.superBackend: self.superBackend.setArrayValues(metaName, values, offset, gIndex) - if cachingLevel == CachingLevel.ForwardAndCache or cachingLevel == CachingLevel.Cache: + if cachingLevel == CachingLevel.ForwardAndCache or cachingLevel == CachingLevel.Cache or cachingLevel == CachingLevel.PreOpenedCache: dataManager.superSectionManager.setArrayValues(dataManager.metaInfo, values, offset, gIndex) def addArrayValues(self, metaName, values, gIndex = -1, unit=None): @@ -449,10 +455,10 @@ class ActiveBackend(object): values = self.convert_unit(metaName, values, unit) dataManager = self.dataManagers[metaName] cachingLevel = dataManager.cachingLevel - if cachingLevel == CachingLevel.Forward or cachingLevel == CachingLevel.ForwardAndCache: + if cachingLevel == CachingLevel.Forward or cachingLevel == CachingLevel.ForwardAndCache or cachingLevel == CachingLevel.PreOpenedCache: if self.superBackend: self.superBackend.addArrayValues(metaName, values, gIndex) - if cachingLevel == CachingLevel.ForwardAndCache or cachingLevel == CachingLevel.Cache: + if cachingLevel == CachingLevel.ForwardAndCache or cachingLevel == CachingLevel.Cache or cachingLevel == CachingLevel.PreOpenedCache: dataManager.superSectionManager.addArrayValues(dataManager.metaInfo, values, gIndex) def convertScalarStringValue(self, metaName, strValue):