aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2016-04-04 16:42:20 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2016-04-04 16:42:20 +0200
commit521577bfe361f78543458d4b01e259574e1a46bb (patch)
treea3f3405c1d14f6eee15ad5ce0d1dd65fe6297b02
parent8c0ee3ba2db18ba759a5be502a89d31f3288d32e (diff)
Add _has_cache() custom session interface, use in OLV implementation
-rw-r--r--doc/manual.xhtml10
-rw-r--r--odb/relational/source.cxx2
2 files changed, 9 insertions, 3 deletions
diff --git a/doc/manual.xhtml b/doc/manual.xhtml
index a3232b0..b417ced 100644
--- a/doc/manual.xhtml
+++ b/doc/manual.xhtml
@@ -11605,14 +11605,17 @@ odb --hxx-prologue "#include \"app/session.hxx\"" \
class custom_session
{
public:
+ static bool
+ _has_cache ();
+
+ // Cache management functions.
+ //
template &lt;typename T>
struct cache_position
{
...
};
- // Cache management functions.
- //
template &lt;typename T>
static cache_position&lt;T>
_cache_insert (odb::database&amp;,
@@ -11649,6 +11652,9 @@ public:
};
</pre>
+ <p>The <code>_has_cache()</code> function shall return <code>true</code>
+ if the object cache is in effect in the current thread.</p>
+
<p>The <code>cache_position</code> class template represents a position
in the cache of the inserted object. It should be default and
copy-constructible as well as copy-assignable. The default
diff --git a/odb/relational/source.cxx b/odb/relational/source.cxx
index a20406a..4e9a069 100644
--- a/odb/relational/source.cxx
+++ b/odb/relational/source.cxx
@@ -5235,7 +5235,7 @@ traverse_view (type& c)
os << endl;
if (need_session)
- os << "if (!session::has_current ())" << endl
+ os << "if (!" << options.session_type () << "::_has_cache ())" << endl
<< "throw session_required ();"
<< endl;