From 0915b3ef56dfac3113cce55a59a5765dc94976be Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 28 Apr 2024 14:34:54 +0200 Subject: Adding upstream version 2.13.6. Signed-off-by: Daniel Baumann --- lib/pgsql_shim/pgsqlinterface.cpp | 108 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 lib/pgsql_shim/pgsqlinterface.cpp (limited to 'lib/pgsql_shim/pgsqlinterface.cpp') diff --git a/lib/pgsql_shim/pgsqlinterface.cpp b/lib/pgsql_shim/pgsqlinterface.cpp new file mode 100644 index 0000000..95b6e7d --- /dev/null +++ b/lib/pgsql_shim/pgsqlinterface.cpp @@ -0,0 +1,108 @@ +/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */ + +#include "pgsql_shim/pgsqlinterface.hpp" + +using namespace icinga; + +struct PgsqlInterfaceImpl final : public PgsqlInterface +{ + void Destroy() override + { + delete this; + } + + void clear(PGresult *res) const override + { + PQclear(res); + } + + char *cmdTuples(PGresult *res) const override + { + return PQcmdTuples(res); + } + + char *errorMessage(const PGconn *conn) const override + { + return PQerrorMessage(conn); + } + + size_t escapeStringConn(PGconn *conn, char *to, const char *from, size_t length, int *error) const override + { + return PQescapeStringConn(conn, to, from, length, error); + } + + PGresult *exec(PGconn *conn, const char *query) const override + { + return PQexec(conn, query); + } + + void finish(PGconn *conn) const override + { + PQfinish(conn); + } + + char *fname(const PGresult *res, int field_num) const override + { + return PQfname(res, field_num); + } + + int getisnull(const PGresult *res, int tup_num, int field_num) const override + { + return PQgetisnull(res, tup_num, field_num); + } + + char *getvalue(const PGresult *res, int tup_num, int field_num) const override + { + return PQgetvalue(res, tup_num, field_num); + } + + int isthreadsafe() const override + { + return PQisthreadsafe(); + } + + int nfields(const PGresult *res) const override + { + return PQnfields(res); + } + + int ntuples(const PGresult *res) const override + { + return PQntuples(res); + } + + char *resultErrorMessage(const PGresult *res) const override + { + return PQresultErrorMessage(res); + } + + ExecStatusType resultStatus(const PGresult *res) const override + { + return PQresultStatus(res); + } + + int serverVersion(const PGconn *conn) const override + { + return PQserverVersion(conn); + } + + PGconn *setdbLogin(const char *pghost, const char *pgport, const char *pgoptions, const char *pgtty, const char *dbName, const char *login, const char *pwd) const override + { + return PQsetdbLogin(pghost, pgport, pgoptions, pgtty, dbName, login, pwd); + } + + PGconn *connectdb(const char *conninfo) const override + { + return PQconnectdb(conninfo); + } + + ConnStatusType status(const PGconn *conn) const override + { + return PQstatus(conn); + } +}; + +PgsqlInterface *create_pgsql_shim() +{ + return new PgsqlInterfaceImpl(); +} -- cgit v1.2.3