aboutsummaryrefslogtreecommitdiff
path: root/odb/relational/header.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2012-11-28 13:47:35 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2012-11-28 13:47:35 +0200
commit77d6727eddc64a95ccbdf87984e22270fce61b35 (patch)
tree8c119200e3e6c70c9a158a4212b4c93565a0bba9 /odb/relational/header.cxx
parent9ad0acf37561de9bf359a561faed53de17c2ca3b (diff)
Add support for DLL exporting of generated code
New options: --export-symbol, --extern-symbol.
Diffstat (limited to 'odb/relational/header.cxx')
-rw-r--r--odb/relational/header.cxx16
1 files changed, 10 insertions, 6 deletions
diff --git a/odb/relational/header.cxx b/odb/relational/header.cxx
index 543e1ac..ff2679e 100644
--- a/odb/relational/header.cxx
+++ b/odb/relational/header.cxx
@@ -52,8 +52,8 @@ traverse_object (type& c)
// object_traits_impl
//
os << "template <>" << endl
- << "class access::object_traits_impl< " << type << ", id_" << db <<
- " >:" << endl
+ << "class " << exp << "access::object_traits_impl< " << type << ", " <<
+ "id_" << db << " >:" << endl
<< " public access::object_traits< " << type << " >"
<< "{"
<< "public:" << endl;
@@ -680,8 +680,8 @@ traverse_view (type& c)
// view_traits_impl
//
os << "template <>" << endl
- << "class access::view_traits_impl< " << type << ", id_" <<
- db << " >:" << endl
+ << "class " << exp << "access::view_traits_impl< " << type << ", " <<
+ "id_" << db << " >:" << endl
<< " public access::view_traits< " << type << " >"
<< "{"
<< "public:" << endl;
@@ -834,9 +834,13 @@ traverse_composite (type& c)
os << "// " << class_name (c) << endl
<< "//" << endl;
+ // While composite_value_traits is not used directly by user code, we
+ // still need to export it if the generated code for the same database
+ // is split into several DLLs.
+ //
os << "template <>" << endl
- << "class access::composite_value_traits< " << type << ", " <<
- "id_" << db << " >"
+ << "class " << exp << "access::composite_value_traits< " << type <<
+ ", id_" << db << " >"
<< "{"
<< "public:" << endl;