handler.c 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. /*!
  2. \file lib/db/dbmi_client/handler.c
  3. \brief DBMI Library (client) - standard error handlers
  4. (C) 2013 by the GRASS Development Team
  5. This program is free software under the GNU General Public License
  6. (>=v2). Read the file COPYING that comes with GRASS for details.
  7. \author Martin Landa <landa.martin gmail.com>
  8. */
  9. #include <grass/gis.h>
  10. #include <grass/dbmi.h>
  11. static void error_handler_driver(void *p)
  12. {
  13. dbDriver *driver;
  14. driver = (dbDriver *) p;
  15. db_close_database(driver);
  16. db_shutdown_driver(driver);
  17. }
  18. /*!
  19. \brief Define standard error handler for open database connection
  20. This handler:
  21. - close database connection
  22. - shutdown db driver
  23. Note: It's recommended to call this routine after
  24. db_start_driver_open_database().
  25. \param driver DB driver
  26. */
  27. void db_set_error_handler_driver(dbDriver *driver)
  28. {
  29. G_add_error_handler(error_handler_driver, driver);
  30. }
  31. /*!
  32. \brief Remove error handler before closing the driver
  33. \param driver DB driver
  34. */
  35. void db_unset_error_handler_driver(dbDriver *driver)
  36. {
  37. G_remove_error_handler(error_handler_driver, driver);
  38. }