// file : odb/sqlite/object-statements.ixx // author : Boris Kolpackov // copyright : Copyright (c) 2005-2011 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file namespace odb { namespace sqlite { // // auto_unlock // inline object_statements_base::auto_unlock:: auto_unlock (object_statements_base& s) : s_ (s) { s_.unlock (); } inline object_statements_base::auto_unlock:: ~auto_unlock () { s_.lock (); } // // auto_lock // template inline object_statements::auto_lock:: auto_lock (object_statements& s) : s_ (s) { if (!s_.locked ()) { s_.lock (); locked_ = true; } else locked_ = false; } template inline object_statements::auto_lock:: ~auto_lock () { if (locked_) { s_.unlock (); s_.clear_delayed (); } } template inline bool object_statements::auto_lock:: locked () const { return locked_; } template inline void object_statements::auto_lock:: unlock () { assert (locked_); s_.unlock (); locked_ = false; } } }