I\'m trying to figure out what is the best approach here. Basically I have a system where I receive external requests in order to set/get values in my model. The problem is
Boost has Property Maps for this purpose.
The most elementary interface it exposes is
get(map, key)
put(pmap, key, val)
For lvalue/readable maps you can also get indexer style access
pmap[key];
pmap[key] = newval; // if not const/readonly
You can a existing property map adaptors:
identity_property_map and typed_identity_property_map function_property_map iterator_property_mapshared_array_property_mapassociative_property_mapconst_associative_property_mapvector_property_mapref_property_map static_property_map transform_value_property_map compose_property_map or write custom ones.
There is even a dynamic_property_map that looks like this, in practice:
put("age",properties,fred,new_age);
put("gpa",properties,fred,new_gpa);
Note that age and gpa could be stored anywhere (even requiring a web-request, perhaps) but the difference in access is abstracted away by the properymap interface that sits in between.
Samples from my answers: