reorganise consistencies

This commit is contained in:
2017-12-23 10:40:41 +01:00
parent 538e6a792a
commit 7ab479f628
11 changed files with 1052 additions and 218 deletions

View File

@ -36,6 +36,7 @@ class CacheOptionDescription(BaseOption):
config,
path='',
_consistencies=None,
_consistencies_id=0,
cache_option=None,
force_store_values=None,
_dependencies=None):
@ -66,6 +67,7 @@ class CacheOptionDescription(BaseOption):
option._build_cache(config,
subpath,
_consistencies,
_consistencies_id,
cache_option,
force_store_values,
_dependencies)
@ -74,7 +76,7 @@ class CacheOptionDescription(BaseOption):
is_multi = option.impl_is_multi()
if not option.impl_is_symlinkoption() and 'force_store_value' in option.impl_getproperties():
force_store_values.append((subpath, option))
for func, all_cons_opts, params in option._get_consistencies():
for cons_id, func, all_cons_opts, params in option._get_consistencies():
option._valid_consistencies(all_cons_opts[1:], init=False)
if func not in ALLOWED_CONST_LIST and is_multi:
is_masterslaves = option.impl_is_master_slaves()
@ -95,9 +97,11 @@ class CacheOptionDescription(BaseOption):
'must be in same master/slaves for "{1}"').format(
option.impl_getname(), opt.impl_getname()))
_consistencies.setdefault(weak_opt,
[]).append((func,
[]).append((_consistencies_id,
func,
all_cons_opts,
params))
_consistencies_id += 1
# if context is set to callback, must be reset each time a value change
if hasattr(option, '_has_calc_context'):
self._add_dependency(option)