lintel 0.2.0
Loading...
Searching...
No Matches
Connection.h
Go to the documentation of this file.
1#ifndef LINTEL_POSTGRES_CONNECTION_H
2#define LINTEL_POSTGRES_CONNECTION_H
3
4#include <libpq-fe.h>
5
6#include <memory>
7#include <string>
8#include <vector>
9
14
15namespace lintel {
16namespace postgresql {
17 class Transaction;
18
19 class Statement;
20
22
23 class Notify;
24
25 class Cursor;
26
31 {
32 private:
33 PGconn *m_conn;
34 std::string m_connInfo;
35
36 friend class Transaction;
37
38 friend class Statement;
39
40 friend class PreparedStatement;
41
42 friend class Notify;
43
44 friend class Cursor;
45
51 std::shared_ptr<Result> execute(const std::string &statement) const;
52
59 [[nodiscard]] std::shared_ptr<Result> executeParameters(const std::string &statement,
60 const db::Parameters &parameters) const;
61
69 [[nodiscard]] std::shared_ptr<Result>
70 prepareStatement(const std::string &statementName, const std::string &query, int32_t nParams) const;
71
79 [[nodiscard]] std::shared_ptr<Result> executePreparedStatement(const std::string &statementName,
81 const db::Parameters &parameters) const;
82
84 [[nodiscard]] std::string getErrorMessage() const;
85
87 [[nodiscard]] static std::string buildConnInfo(const std::shared_ptr<DatabaseConnectionEntry> &connectionEntry);
88
89 public:
94 explicit Connection(const std::string &connectionInfo);
95
100 explicit Connection(const std::shared_ptr<DatabaseConnectionEntry> &connectionEntry);
101
102 Connection(Connection &connection) = delete;
103
105 [[nodiscard]] bool isHealthy() const;
106
109 };
110}// namespace postgresql
111
112}// namespace lintel
113#endif// LINTEL_POSTGRES_CONNECTION_H
Definition Parameter.h:42
Definition Connection.h:31
Connection(Connection &connection)=delete
Connection(const std::string &connectionInfo)
Connection(const std::shared_ptr< DatabaseConnectionEntry > &connectionEntry)
Definition Cursor.h:34
Definition Notify.h:23
Definition PreparedStatement.h:19
Definition Statement.h:19
Definition Transaction.h:15
Definition BaseFeature.h:6
constexpr std::string_view type_name()
Definition TypeName.h:9