modules: several small doxygen bug fixes
[sip-router] / modules / db_mysql / km_my_con.h
1 /* 
2  * $Id$
3  *
4  * Copyright (C) 2001-2003 FhG Fokus
5  * Copyright (C) 2008 1&1 Internet AG
6  *
7  * This file is part of Kamailio, a free SIP server.
8  *
9  * Kamailio is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation; either version 2 of the License, or
12  * (at your option) any later version
13  *
14  * Kamailio is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License 
20  * along with this program; if not, write to the Free Software 
21  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
22  */
23
24 /*! \file
25  *  \brief DB_MYSQL :: Core
26  *  \ref my_con.c
27  *  \ingroup db_mysql
28  *  Module: \ref db_mysql
29  */
30
31
32 #ifndef KM_MY_CON_H
33 #define KM_MY_CON_H
34
35 #include "../../lib/srdb1/db_pool.h"
36 #include "../../lib/srdb1/db_id.h"
37
38 #include <time.h>
39 #include <mysql/mysql.h>
40
41
42 struct my_con {
43         struct db_id* id;        /*!< Connection identifier */
44         unsigned int ref;        /*!< Reference count */
45         struct pool_con* next;   /*!< Next connection in the pool */
46
47         MYSQL_RES* res;          /*!< Actual result */
48         MYSQL* con;              /*!< Connection representation */
49         MYSQL_ROW row;           /*!< Actual row in the result */
50         time_t timestamp;        /*!< Timestamp of last query */
51 };
52
53
54 /*
55  * Some convenience wrappers
56  */
57 #define CON_RESULT(db_con)     (((struct my_con*)((db_con)->tail))->res)
58 #define CON_CONNECTION(db_con) (((struct my_con*)((db_con)->tail))->con)
59 #define CON_ROW(db_con)        (((struct my_con*)((db_con)->tail))->row)
60 #define CON_TIMESTAMP(db_con)  (((struct my_con*)((db_con)->tail))->timestamp)
61
62
63 /*! \brief
64  * Create a new connection structure,
65  * open the MySQL connection and set reference count to 1
66  */
67 struct my_con* db_mysql_new_connection(const struct db_id* id);
68
69
70 /*! \brief
71  * Close the connection and release memory
72  */
73 void db_mysql_free_connection(struct pool_con* con);
74
75 #endif /* KM_MY_CON_H */