aboutsummaryrefslogtreecommitdiff
path: root/odb/header.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2012-11-07 09:48:11 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2012-11-21 13:13:50 +0200
commitd01c8e22abea35477f21488613f2474a2e4e8fc7 (patch)
tree9d08d4dfbfbe4535f5cf2829c01fe81d4d7668ea /odb/header.cxx
parentcc3979f34a886ae4c89d4e3e86a5b0db1669585f (diff)
Generate query tags in object_traits for dynamic multi-database support
Diffstat (limited to 'odb/header.cxx')
-rw-r--r--odb/header.cxx24
1 files changed, 24 insertions, 0 deletions
diff --git a/odb/header.cxx b/odb/header.cxx
index 7e0a377..66248d2 100644
--- a/odb/header.cxx
+++ b/odb/header.cxx
@@ -203,6 +203,21 @@ traverse_object (type& c)
<< endl;
}
+ // Query.
+ //
+ if (options.generate_query ())
+ {
+ // Generate object pointer tags here if we are generating dynamic
+ // multi-database support.
+ //
+ if (options.multi_database () == multi_database::dynamic &&
+ has_a (c, test_pointer | exclude_base))
+ {
+ query_tags t;
+ t.traverse (c);
+ }
+ }
+
// The rest does not apply to reuse-abstract objects.
//
if (reuse_abst)
@@ -410,6 +425,15 @@ traverse_view (type& c)
<< "typedef " << c.get<string> ("object-pointer") << " pointer_type;"
<< endl;
+ // Generate associated object tags here if we are generating dynamic
+ // multi-database support.
+ //
+ if (options.multi_database () == multi_database::dynamic)
+ {
+ query_tags t;
+ t.traverse (c);
+ }
+
// callback ()
//
os << "static void" << endl