<?php

require_once "DB/DataObject.php";
require_once "error.php";

/*
 * Transactions functions for DataObjects
 *
 * This functions operate on the connection
 * associated with the DB_DataObject passed
 * as argument
 */

function transactionBegin(&$dataObject)
{
    global $_DB_DATAOBJECT;
    if (!is_a($dataObject, "DB_DataObject")) {
        return PEAR::raiseError("transactionBegin error: dataObject must be a subclass of `DB_DataObject'");
    }
    $dataObject->_connect();
    $md5 = $dataObject->_database_dsn_md5;
    $db =& $_DB_DATAOBJECT['CONNECTIONS'][$md5];
    $db->autoCommit();
}

function transactionRollback(&$dataObject)
{
    global $_DB_DATAOBJECT;
    if (!is_a($dataObject, "DB_DataObject")) {
        return PEAR::raiseError("transactionRollback error: dataObject must be a subclass of `DB_DataObject'");
    }
    $dataObject->_connect();
    $md5 = $dataObject->_database_dsn_md5;
    $db =& $_DB_DATAOBJECT['CONNECTIONS'][$md5];
	$db->rollback();
}

function transactionCommit(&$dataObject)
{
    global $_DB_DATAOBJECT;
    if (!is_a($dataObject, "DB_DataObject")) {
        return PEAR::raiseError("transactionCommit error: dataObject must be a subclass of `DB_DataObject'");
    }
    $dataObject->_connect();
    $md5 = $dataObject->_database_dsn_md5;
    $db =& $_DB_DATAOBJECT['CONNECTIONS'][$md5];
	$db->commit();
}

?>
