Clean up field locking and memory manager mechanism
Lock Fields
Currently, field managers may be asked to lock/unlock fields but this doesn't necessarily trigger changes in the MemoryManager
for those fields. This could lead to an inconsistency.
Set memory manager
Currently done from:
- ExpressionTree
- Expression (actually through
FieldType
in Expression.h) - Field Managers
- Schedulers
Sensitivity fields.
- Currently if we modify a field we need to also look up the sensitivity field(s) corresponding to this (through the expression
FieldAggregator
). This is a bit error prone (as I learned the hard way). Can we clean this up? - The
FieldAggregator
provides some ghost setting functionality. Should this also be hitting the sensitivity fields?
FieldType
and FieldAggregator
?
Consolidate Currently, these serve similar purposes. Both allow concrete type access and operations on fully-typed fields through base classes. It might be good to consolidate them.