From 89a3b6133ade1ccb3a8e9ab9c86eac6aaef5db69 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 15 Nov 2010 17:46:28 +0200 Subject: Add support for custom object pointers New option: --default-pointer. New object pragma specifier: pointer. --- odb/tracer/header.cxx | 9 ++++----- odb/tracer/source.cxx | 4 ++-- 2 files changed, 6 insertions(+), 7 deletions(-) (limited to 'odb/tracer') 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 ();" -- cgit v1.1