Pārlūkot izejas kodu

dbmi: add db_set_error_handler_driver()

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@56200 15284696-431f-4ddb-bdfa-cd5b030d7da7
Martin Landa 12 gadi atpakaļ
vecāks
revīzija
efaeecb016
2 mainītis faili ar 43 papildinājumiem un 0 dzēšanām
  1. 1 0
      include/defs/dbmi.h
  2. 42 0
      lib/db/dbmi_client/handler.c

+ 1 - 0
include/defs/dbmi.h

@@ -331,6 +331,7 @@ void db_set_cursor_type_update(dbCursor *);
 int db_set_default_connection(void);
 void db_set_error_who(const char *);
 int db_set_handle(dbHandle *, const char *, const char *);
+void db_set_error_handler_driver(dbDriver *);
 int db_set_index_column_name(dbIndex *, int,
 			     const char *);
 int db_set_index_name(dbIndex *, const char *);

+ 42 - 0
lib/db/dbmi_client/handler.c

@@ -0,0 +1,42 @@
+/*!
+  \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);
+}