aboutsummaryrefslogtreecommitdiff
path: root/odb/relational/header.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2012-04-26 11:29:05 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2012-04-26 11:29:05 +0200
commit8e046e3ea7e88f872205c2b65cb7f9b86aaabd93 (patch)
treeaba1ae331454eb1e0cf9525faf8a084d3652bda0 /odb/relational/header.cxx
parent6c88333c2e0232aed9e0b3c9077306f09e36c65c (diff)
Make session optional
Diffstat (limited to 'odb/relational/header.cxx')
-rw-r--r--odb/relational/header.cxx40
1 files changed, 23 insertions, 17 deletions
diff --git a/odb/relational/header.cxx b/odb/relational/header.cxx
index 46ba722..48bca91 100644
--- a/odb/relational/header.cxx
+++ b/odb/relational/header.cxx
@@ -384,25 +384,31 @@ traverse_object (type& c)
<< "reference_cache_traits;"
<< endl;
}
- else if (poly_derived)
- {
- os << "typedef" << endl
- << "odb::pointer_cache_traits<root_traits::pointer_type>" << endl
- << "pointer_cache_traits;"
- << "typedef" << endl
- << "odb::reference_cache_traits<root_type>" << endl
- << "reference_cache_traits;"
- << endl;
- }
else
{
- os << "typedef" << endl
- << "odb::pointer_cache_traits<pointer_type>" << endl
- << "pointer_cache_traits;"
- << "typedef" << endl
- << "odb::reference_cache_traits<object_type>" << endl
- << "reference_cache_traits;"
- << endl;
+ char const* p (session (c) ? "" : "no_op_");
+
+ if (poly_derived)
+ {
+ os << "typedef" << endl
+ << "odb::" << p << "pointer_cache_traits<" <<
+ "root_traits::pointer_type>" << endl
+ << "pointer_cache_traits;"
+ << "typedef" << endl
+ << "odb::" << p << "reference_cache_traits<root_type>" << endl
+ << "reference_cache_traits;"
+ << endl;
+ }
+ else
+ {
+ os << "typedef" << endl
+ << "odb::" << p << "pointer_cache_traits<pointer_type>" << endl
+ << "pointer_cache_traits;"
+ << "typedef" << endl
+ << "odb::" << p << "reference_cache_traits<object_type>" << endl
+ << "reference_cache_traits;"
+ << endl;
+ }
}
// Statements typedefs.