GRASS GIS 8 Programmer's Manual  8.2.2dev(2023)-3d2c704037
d_finddb.c
Go to the documentation of this file.
1 /*!
2  * \file db/dbmi_driver/d_finddb.c
3  *
4  * \brief DBMI Library (driver) - find database
5  *
6  * (C) 1999-2008 by the GRASS Development Team
7  *
8  * This program is free software under the GNU General Public
9  * License (>=v2). Read the file COPYING that comes with GRASS
10  * for details.
11  *
12  * \author Joel Jones (CERL/UIUC), Radim Blazek
13  */
14 
15 #include <stdlib.h>
16 #include <grass/dbmi.h>
17 #include "macros.h"
18 #include "dbstubs.h"
19 
20 /*!
21  \brief Find database
22 
23  \return DB_OK on success
24  \return DB_FAILED on failure
25  */
27 {
28  dbHandle handle;
29  int found;
30  int stat;
31 
32  /* get the arg(s) */
33  db_init_handle(&handle);
34  DB_RECV_HANDLE(&handle);
35 
36  /* call the procedure */
37  stat = db_driver_find_database(&handle, &found);
38 
39 
40  /* send the return code */
41  if (stat != DB_OK) {
42  db_free_handle(&handle);
44  return DB_OK;
45  }
47 
48  /* send results */
49  DB_SEND_INT(found);
50  if (found) {
51  DB_SEND_HANDLE(&handle);
52  }
53  db_free_handle(&handle);
54  return DB_OK;
55 }
#define DB_SEND_HANDLE(x)
Definition: macros.h:57
#define DB_SEND_INT(x)
Definition: macros.h:37
#define DB_RECV_HANDLE(x)
Definition: macros.h:59
void db_free_handle(dbHandle *)
Free dbHandle structure.
Definition: handle.c:79
#define DB_SEND_FAILURE()
Definition: macros.h:9
int db_d_find_database(void)
Find database.
Definition: d_finddb.c:26
void db_init_handle(dbHandle *)
Initialize handle (i.e database/schema)
Definition: handle.c:23
int(* db_driver_find_database)(dbHandle *, int *)
#define DB_SEND_SUCCESS()
Definition: macros.h:7
#define DB_OK
Definition: dbmi.h:71