diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2010-10-18 11:17:51 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2010-10-18 11:17:51 +0200 |
commit | d80d096ee8743fd6f7382d274272b0b6d7faf9bf (patch) | |
tree | d0f0bee1e645cb2b86b6837ac0db8a7d2821e533 /libxsde/xsde/cxx/serializer/substitution-map.ixx | |
parent | 0e4637025fa8d1b4234b0512561d31f0dd023843 (diff) |
Support for schema evolution using substitution groups
New examples: hybrid/evolution/ignore and hybrid/evolution/passthrough.
Diffstat (limited to 'libxsde/xsde/cxx/serializer/substitution-map.ixx')
-rw-r--r-- | libxsde/xsde/cxx/serializer/substitution-map.ixx | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/libxsde/xsde/cxx/serializer/substitution-map.ixx b/libxsde/xsde/cxx/serializer/substitution-map.ixx index 6622e33..6dbd951 100644 --- a/libxsde/xsde/cxx/serializer/substitution-map.ixx +++ b/libxsde/xsde/cxx/serializer/substitution-map.ixx @@ -15,12 +15,21 @@ namespace xsde { } + inline void substitution_map:: + callback (callback_func c) + { + callback_ = c; + } + inline bool substitution_map:: check (const char*& ns, const char*& name, - const char* type) const + const char* type, + const void* obj) const { - return empty () ? false : check_ (ns, name, type); + return !empty () || callback_ != 0 + ? check_ (ns, name, type, obj, true) + : false; } inline substitution_map& |