diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2015-02-04 17:23:54 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2015-02-04 17:23:54 +0200 |
commit | 8e69f40ab32dc8604b68f360ae30fa961ba036ee (patch) | |
tree | 5448cea6c20f7e6c5cd80ae752b49e1a696bcd6e /odb/relational/common.hxx | |
parent | 36920a538c7b207c0b36b2270108a717479e0ed1 (diff) |
Implement object loading views
See section 10.2 in the manual for details.
Diffstat (limited to 'odb/relational/common.hxx')
-rw-r--r-- | odb/relational/common.hxx | 42 |
1 files changed, 26 insertions, 16 deletions
diff --git a/odb/relational/common.hxx b/odb/relational/common.hxx index abe5e31..a70bef0 100644 --- a/odb/relational/common.hxx +++ b/odb/relational/common.hxx @@ -174,34 +174,44 @@ namespace relational // should be called for this member. // virtual bool - pre (member_info&) - { - return true; - } + pre (member_info&) {return true;} virtual void - post (member_info&) - { - } + post (member_info&) {} virtual void - traverse_composite (member_info&) - { - } + traverse_composite (member_info&) {} virtual void - traverse_container (member_info&) - { - } + traverse_container (member_info&) {} - // Note that by default traverse_object_pointer() will traverse the + // Note that by default traverse_pointer() will traverse the // pointed-to object id type. // virtual void - traverse_object_pointer (member_info&); + traverse_pointer (member_info&); virtual void - traverse_simple (member_info&) = 0; + traverse_simple (member_info&) {} + }; + + // + // + struct member_image_type: virtual member_base + { + typedef member_image_type base; + + member_image_type (semantics::type* type = 0, + string const& fq_type = string (), + string const& key_prefix = string ()) + : member_base (type, fq_type, key_prefix) + { + } + + // Has to be overriden. + // + virtual string + image_type (semantics::data_member&); }; // |