diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2012-06-18 16:20:04 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2012-06-18 16:20:04 +0200 |
commit | a5a93dcba35e79bfa247d54991a59f389203507e (patch) | |
tree | 5432daa438a5162e24ebe225b358d72c4e5982b7 | |
parent | be5d50d5e68f2dbf904378480b26495249720320 (diff) |
Add argument to session ctor that indicates whether to make it current
-rw-r--r-- | odb/session.cxx | 11 | ||||
-rw-r--r-- | odb/session.hxx | 8 |
2 files changed, 11 insertions, 8 deletions
diff --git a/odb/session.cxx b/odb/session.cxx index 71c8817..3ca6af4 100644 --- a/odb/session.cxx +++ b/odb/session.cxx @@ -14,12 +14,15 @@ namespace odb static ODB_TLS_POINTER (session) current_session; session:: - session () + session (bool make_current) { - if (has_current ()) - throw already_in_session (); + if (make_current) + { + if (has_current ()) + throw already_in_session (); - current (*this); + current (*this); + } } session:: diff --git a/odb/session.hxx b/odb/session.hxx index 1541fde..cfeebce 100644 --- a/odb/session.hxx +++ b/odb/session.hxx @@ -25,11 +25,11 @@ namespace odb public: typedef odb::database database_type; - // Set the current thread's session to this session. If another - // session is already in effect, throw the already_in_session - // exception. + // If the make_current argument is true, then set the current thread's + // session to this session. If another session is already in effect, + // throw the already_in_session exception. // - session (); + session (bool make_current = true); // Reset the current thread's session if it is this session. // |