diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2010-11-15 17:46:28 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2010-11-15 17:46:28 +0200 |
commit | 89a3b6133ade1ccb3a8e9ab9c86eac6aaef5db69 (patch) | |
tree | 394eb90c5acc9b55460bc7e4961cf791a60e397d /odb/tracer | |
parent | 61acf05c698a8b611c5ccf6aed8d3e654d5acf8e (diff) |
Add support for custom object pointers
New option: --default-pointer. New object pragma specifier: pointer.
Diffstat (limited to 'odb/tracer')
-rw-r--r-- | odb/tracer/header.cxx | 9 | ||||
-rw-r--r-- | odb/tracer/source.cxx | 4 |
2 files changed, 6 insertions, 7 deletions
diff --git a/odb/tracer/header.cxx b/odb/tracer/header.cxx index eaa7546..a4dd368 100644 --- a/odb/tracer/header.cxx +++ b/odb/tracer/header.cxx @@ -35,15 +35,14 @@ namespace tracer << "//" << endl; os << "template <>" << endl - << "class access::object_traits< " << type << " >: " << endl - << " public access::object_memory< " << type << " >," << endl - << " public access::object_factory< " << type << " >" + << "class access::object_traits< " << type << " >" << "{" << "public:" << endl; - // object_type & shared_ptr + // object_type & pointer_type // - os << "typedef " << type << " object_type;"; + os << "typedef " << type << " object_type;" + << "typedef object_type* pointer_type;"; // id_type // diff --git a/odb/tracer/source.cxx b/odb/tracer/source.cxx index 338f2fb..8d1bd4f 100644 --- a/odb/tracer/source.cxx +++ b/odb/tracer/source.cxx @@ -93,8 +93,8 @@ namespace tracer << "if (id == id_type ())" << endl << "return pointer_type (0);" << endl - << "pointer_type r (access::object_factory< " << type << - " >::create ());" + << "pointer_type r (access::object_factory< object_type, " << + "pointer_type >::create ());" << "pointer_traits< pointer_type >::guard g (r);" << "r->" << id.name () << " = id;" << "g.release ();" |