Session obj_sess; start(DBData data) obj_sess.begin db_open_commit_close(data, self.db_finished, obj_sess); stop() obj_sess.end db_finished(Session cur) if(cur != obj_sess) return emit opened() if(cur != obj_sess) return emit committed() if(cur != obj_sess) return emit closed()