aboutsummaryrefslogtreecommitdiff
path: root/odb/pgsql/pgsql-fwd.hxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2011-07-22 20:43:35 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2011-07-22 20:43:35 +0200
commitb70088d31a8d3e78409f4247c1f2db9092e828e3 (patch)
tree94b391194ea0af567fc2a6872ca1a9d9887ee26b /odb/pgsql/pgsql-fwd.hxx
parent42394a86aafd45d7a03604ce82d9bce471ad121c (diff)
Get rid of libpq-fe.h inclusion in public headers
The problem with libpq-fe.h is that it is installed in unpredictable places on different platforms. As a result, a user that uses ODB with PostgreSQL (and who doesn't really know or care about libpq) is forced to make sure their application is able to find and include libpq-fe.h correctly. Luckily for us, we only use a handful of libpq pointers in public headers and the workaround is to forward declare them and use that instead of including libpq-fe.h (which is instead included in source files).
Diffstat (limited to 'odb/pgsql/pgsql-fwd.hxx')
-rw-r--r--odb/pgsql/pgsql-fwd.hxx21
1 files changed, 21 insertions, 0 deletions
diff --git a/odb/pgsql/pgsql-fwd.hxx b/odb/pgsql/pgsql-fwd.hxx
new file mode 100644
index 0000000..45f085d
--- /dev/null
+++ b/odb/pgsql/pgsql-fwd.hxx
@@ -0,0 +1,21 @@
+// file : odb/pgsql/pgsql-fwd.hxx
+// author : Boris Kolpackov <boris@codesynthesis.com>
+// copyright : Copyright (c) 2005-2011 Code Synthesis Tools CC
+// license : GNU GPL v2; see accompanying LICENSE file
+
+#ifndef ODB_PGSQL_PGSQL_FWD_HXX
+#define ODB_PGSQL_PGSQL_FWD_HXX
+
+#include <odb/pre.hxx>
+
+// Forward declaration for some of the types defined in libpq-fe.h. This
+// allows us to avoid having to include libpq-fe.h in public headers.
+//
+typedef unsigned int Oid;
+
+typedef struct pg_conn PGconn;
+typedef struct pg_result PGresult;
+
+#include <odb/post.hxx>
+
+#endif // ODB_PGSQL_PGSQL_FWD_HXX