aboutsummaryrefslogtreecommitdiff
path: root/odb/relational
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2011-06-21 20:13:06 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2011-06-21 20:13:06 +0200
commit3f37eff838e00274e20acc89f58fc36fb3531e94 (patch)
tree800c6422600d0651045f00606abd54c83ad28e5f /odb/relational
parent71482222a48f24ebe572d94d25d8b72b730c78dd (diff)
Add hooks for generating extra code in object traits
Diffstat (limited to 'odb/relational')
-rw-r--r--odb/relational/header.hxx15
-rw-r--r--odb/relational/inline.hxx7
-rw-r--r--odb/relational/source.hxx7
3 files changed, 29 insertions, 0 deletions
diff --git a/odb/relational/header.hxx b/odb/relational/header.hxx
index 3ecc8d8..16c7855 100644
--- a/odb/relational/header.hxx
+++ b/odb/relational/header.hxx
@@ -728,6 +728,16 @@ namespace relational
}
virtual void
+ object_public_extra_pre (type&)
+ {
+ }
+
+ virtual void
+ object_public_extra_post (type&)
+ {
+ }
+
+ virtual void
traverse_object (type& c)
{
bool abst (abstract (c));
@@ -745,6 +755,8 @@ namespace relational
<< "{"
<< "public:" << endl;
+ object_public_extra_pre (c);
+
// object_type & pointer_type
//
os << "typedef " << type << " object_type;"
@@ -869,6 +881,7 @@ namespace relational
//
if (abst)
{
+ object_public_extra_post (c);
os << "};";
return;
}
@@ -974,6 +987,8 @@ namespace relational
<< endl;
}
+ object_public_extra_post (c);
+
// Implementation details.
//
os << "public:" << endl;
diff --git a/odb/relational/inline.hxx b/odb/relational/inline.hxx
index 73e0112..856965c 100644
--- a/odb/relational/inline.hxx
+++ b/odb/relational/inline.hxx
@@ -30,6 +30,11 @@ namespace relational
}
virtual void
+ object_extra (type&)
+ {
+ }
+
+ virtual void
traverse_object (type& c)
{
bool abst (abstract (c));
@@ -43,6 +48,8 @@ namespace relational
<< "//" << endl
<< endl;
+ object_extra (c);
+
if (id != 0)
{
// id (object_type)
diff --git a/odb/relational/source.hxx b/odb/relational/source.hxx
index b65bf4d..2cf11c2 100644
--- a/odb/relational/source.hxx
+++ b/odb/relational/source.hxx
@@ -1821,6 +1821,11 @@ namespace relational
}
virtual void
+ object_extra (type&)
+ {
+ }
+
+ virtual void
traverse_object (type& c)
{
bool abst (abstract (c));
@@ -1838,6 +1843,8 @@ namespace relational
<< "//" << endl
<< endl;
+ object_extra (c);
+
//
// Query.
//