summaryrefslogtreecommitdiff
path: root/odb/relational/common.hxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2015-02-04 17:23:54 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2015-02-04 17:23:54 +0200
commit8e69f40ab32dc8604b68f360ae30fa961ba036ee (patch)
tree5448cea6c20f7e6c5cd80ae752b49e1a696bcd6e /odb/relational/common.hxx
parent36920a538c7b207c0b36b2270108a717479e0ed1 (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.hxx42
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&);
};
//