/*!
   \file lib/db/dbmi_client/handler.c

   \brief DBMI Library (client) - standard error handlers

   (C) 2013 by the GRASS Development Team

   This program is free software under the GNU General Public License
   (>=v2). Read the file COPYING that comes with GRASS for details.

   \author Martin Landa <landa.martin gmail.com>
 */

#include <grass/gis.h>
#include <grass/dbmi.h>

static void error_handler_driver(void *p)
{
    dbDriver *driver;

    driver = (dbDriver *)p;
    db_close_database(driver);
    db_shutdown_driver(driver);
}

/*!
   \brief Define standard error handler for open database connection

   This handler:
   - close database connection
   - shutdown db driver

   Note: It's recommended to call this routine after
   db_start_driver_open_database().

   \param driver DB driver
 */
void db_set_error_handler_driver(dbDriver *driver)
{
    G_add_error_handler(error_handler_driver, driver);
}

/*!
   \brief Remove error handler before closing the driver

   \param driver DB driver
 */
void db_unset_error_handler_driver(dbDriver *driver)
{
    G_remove_error_handler(error_handler_driver, driver);
}
