Moodle  2.2.1
http://www.collinsharper.com
C:/xampp/htdocs/moodle/lib/dml/moodle_transaction.php
Go to the documentation of this file.
00001 <?php
00002 
00003 // This file is part of Moodle - http://moodle.org/
00004 //
00005 // Moodle is free software: you can redistribute it and/or modify
00006 // it under the terms of the GNU General Public License as published by
00007 // the Free Software Foundation, either version 3 of the License, or
00008 // (at your option) any later version.
00009 //
00010 // Moodle is distributed in the hope that it will be useful,
00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013 // GNU General Public License for more details.
00014 //
00015 // You should have received a copy of the GNU General Public License
00016 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
00017 
00018 
00028 defined('MOODLE_INTERNAL') || die();
00029 
00033 class moodle_transaction {
00034     private $start_backtrace;
00035     private $database = null;
00036 
00043     public function __construct($database) {
00044         $this->database = $database;
00045         $this->start_backtrace = debug_backtrace();
00046         array_shift($this->start_backtrace);
00047     }
00048 
00053     public function get_backtrace() {
00054         return $this->start_backtrace;
00055     }
00056 
00061     public function is_disposed() {
00062         return empty($this->database);
00063     }
00064 
00071     public function dispose() {
00072         return $this->database = null;
00073     }
00074 
00085     public function allow_commit() {
00086         if ($this->is_disposed()) {
00087             throw new dml_transaction_exception('Transactions already disposed', $this);
00088         }
00089         $this->database->commit_delegated_transaction($this);
00090     }
00091 
00098     public function rollback(Exception $e) {
00099         if ($this->is_disposed()) {
00100             throw new dml_transaction_exception('Transactions already disposed', $this);
00101         }
00102         $this->database->rollback_delegated_transaction($this, $e);
00103     }
00104 }
 All Data Structures Namespaces Files Functions Variables Enumerations