FOSSology  4.4.0
Open Source License Compliance by Open Source Software
libfossdbmanager.h
1 /*
2  Author: Daniele Fognini
3  SPDX-FileCopyrightText: © 2014-2015 Siemens AG
4 
5  SPDX-License-Identifier: GPL-2.0-only
6 */
7 
8 #ifndef LIBFOSSDBMANAGER_H
9 #define LIBFOSSDBMANAGER_H
10 
11 #include <libpq-fe.h>
12 #include <stdarg.h>
13 #include <glib.h>
14 
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18 
20 typedef struct fo_dbmanager fo_dbManager;
21 
23 fo_dbManager* fo_dbManager_new_withConf(PGconn* dbConnection, const char* dbConf);
24 PGconn* fo_dbManager_getWrappedConnection(fo_dbManager* dbManager);
25 fo_dbManager* fo_dbManager_fork(fo_dbManager* dbManager);
27 void fo_dbManager_finish(fo_dbManager* dbManager);
28 int fo_dbManager_setLogFile(fo_dbManager* dbManager, const char* logFileName);
29 void fo_dbManager_ignoreWarnings(fo_dbManager* dbManager, int ignoreWarns);
30 char* fo_dbManager_StringEscape(fo_dbManager* dbManager, const char* string);
31 int fo_dbManager_begin(fo_dbManager* dbManager);
32 int fo_dbManager_commit(fo_dbManager* dbManager);
33 int fo_dbManager_rollback(fo_dbManager* dbManager);
34 PGresult* fo_dbManager_Exec_printf(fo_dbManager* dbManager, const char* sqlQueryStringFormat, ...);
35 
70 #define fo_dbManager_PrepareStamement(dbManager, name, query, ...) \
71 fo_dbManager_PrepareStamement_str(dbManager, \
72  name, \
73  query, \
74  #__VA_ARGS__\
75 )
76 
77 fo_dbManager_PreparedStatement* fo_dbManager_PrepareStamement_str(fo_dbManager* dbManager, const char* name, const char* query, const char* paramtypes);
78 
79 PGresult* fo_dbManager_ExecPrepared(fo_dbManager_PreparedStatement* preparedStatement, ...);
80 PGresult* fo_dbManager_ExecPreparedv(fo_dbManager_PreparedStatement* preparedStatement, va_list args);
81 
82 int fo_dbManager_tableExists(fo_dbManager* dbManager, const char* tableName);
83 int fo_dbManager_exists(fo_dbManager* dbManager, const char* type, const char* name);
84 
85 // visible for testing
86 int fo_dbManager_parseParamStr(const char* paramtypes, GArray** params);
87 char* fo_dbManager_printStatement(fo_dbManager_PreparedStatement* preparedStatement);
88 
89 #ifdef __cplusplus
90 }
91 #endif
92 
93 #endif /* LIBFOSSDBMANAGER_H */
fo_dbManager * dbManager
fo_dbManager object
Definition: process.c:16
fo_dbManager_PreparedStatement * fo_dbManager_PrepareStamement_str(fo_dbManager *dbManager, const char *name, const char *query, const char *paramtypes)
Create a prepared statement.
Definition: standalone.c:35
PGresult * fo_dbManager_ExecPrepared(fo_dbManager_PreparedStatement *preparedStatement,...)
Execute a prepared statement.
Definition: standalone.c:36
fo_dbManager * fo_dbManager_new(PGconn *dbConnection)
Create and initialize new fo_dbManager object.
Definition: standalone.c:33
void fo_dbManager_free(fo_dbManager *dbManager)
Un-allocate the memory from a DB manager.
Definition: standalone.c:34
PGconn * dbConnection
Postgres database connection object.
int ignoreWarns
Set to ignore warnings from logging.
char * dbConf
DB conf file location.