annotate database/postgresql/src/driver.hpp @ 116:d7025649d85c

Server: add database account Implement accounts using a abstract factory mechanism, the database object creates abstract account which are implemented differently depending on the backend. See: - test_database, - test_account - broken_account Refs #687, #682
author David Demelier <markand@malikania.fr>
date Mon, 11 Sep 2017 13:18:43 +0200
parents d4f5f7231b84
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
29
99792c6c8b06 Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
33
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 29
diff changeset
2 * driver.hpp -- PostgreSQL database driver
29
99792c6c8b06 Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
99792c6c8b06 Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 * Copyright (c) 2013-2016 David Demelier <markand@malikania.fr>
99792c6c8b06 Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
99792c6c8b06 Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
99792c6c8b06 Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
99792c6c8b06 Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
99792c6c8b06 Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
99792c6c8b06 Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
99792c6c8b06 Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
99792c6c8b06 Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
99792c6c8b06 Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
99792c6c8b06 Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
99792c6c8b06 Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
99792c6c8b06 Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
99792c6c8b06 Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
99792c6c8b06 Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
33
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 29
diff changeset
19 #ifndef MALIKANIA_POSTGRESQL_DRIVER_HPPPP
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 29
diff changeset
20 #define MALIKANIA_POSTGRESQL_DRIVER_HPPPP
29
99792c6c8b06 Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff changeset
21
99792c6c8b06 Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 #include <memory>
99792c6c8b06 Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 #include <string>
99792c6c8b06 Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff changeset
24
99792c6c8b06 Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 #include <libpq-fe.h>
99792c6c8b06 Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff changeset
26
99792c6c8b06 Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 namespace pgsql {
99792c6c8b06 Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff changeset
28
99792c6c8b06 Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 extern PGconn *connection;
99792c6c8b06 Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff changeset
30
99792c6c8b06 Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 std::shared_ptr<PGresult> exec(const std::string &sql);
99792c6c8b06 Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff changeset
32
99792c6c8b06 Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 std::string escape(const std::string &input);
99792c6c8b06 Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff changeset
34
99792c6c8b06 Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 } // !pgsql
99792c6c8b06 Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff changeset
36
33
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 29
diff changeset
37 #endif // !MALIKANIA_POSTGRESQL_DRIVER_HPPPP