aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorConstantin Michael <constantin@codesynthesis.com>2011-06-29 08:31:19 +0200
committerConstantin Michael <constantin@codesynthesis.com>2011-07-05 14:43:38 +0200
commitba529a8179f27d3ccbc584925fde6cd270f790ce (patch)
treec5cce33e4e2a0968c4ef2e4a8377ad2d73cb9c86
parentc860418cf4042e137bcc25b4d2c266b7864c0034 (diff)
Add hooks for generating extra code in container traits
-rw-r--r--odb/relational/header.hxx18
-rw-r--r--odb/relational/source.hxx7
2 files changed, 24 insertions, 1 deletions
diff --git a/odb/relational/header.hxx b/odb/relational/header.hxx
index 62c2e92..11ecfdf 100644
--- a/odb/relational/header.hxx
+++ b/odb/relational/header.hxx
@@ -202,6 +202,16 @@ namespace relational
}
virtual void
+ container_public_extra_pre (semantics::data_member&)
+ {
+ }
+
+ virtual void
+ container_public_extra_post (semantics::data_member&)
+ {
+ }
+
+ virtual void
container (semantics::data_member& m)
{
using semantics::type;
@@ -343,6 +353,8 @@ namespace relational
os << "{";
+ container_public_extra_pre (m);
+
if (!abst)
{
// column_count
@@ -363,7 +375,9 @@ namespace relational
if (base)
{
+ container_public_extra_post (m);
os << "};";
+
return;
}
@@ -693,10 +707,12 @@ namespace relational
<< "erase (const " << db << "::binding& id, statements_type&);"
<< endl;
+ container_public_extra_post (m);
+
os << "};";
}
- private:
+ protected:
semantics::class_& c_;
};
diff --git a/odb/relational/source.hxx b/odb/relational/source.hxx
index c24b7c4..94e08d6 100644
--- a/odb/relational/source.hxx
+++ b/odb/relational/source.hxx
@@ -622,6 +622,11 @@ namespace relational
}
virtual void
+ container_extra (semantics::data_member&)
+ {
+ }
+
+ virtual void
container (semantics::data_member& m)
{
using semantics::type;
@@ -693,6 +698,8 @@ namespace relational
<< "//" << endl
<< endl;
+ container_extra (m);
+
//
// Statements.
//