00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef _POSTGRES_SQL_IMPLEMENTATION_H_
00018 #define _POSTGRES_SQL_IMPLEMENTATION_H_
00019
00020 #include <libpq-fe.h>
00021 #include <oasys/debug/Log.h>
00022 #include <oasys/serialize/SQLImplementation.h>
00023
00024 namespace dtn {
00025
00029 class PostgresSQLImplementation : public oasys::SQLImplementation, public oasys::Logger {
00030 public:
00031 PostgresSQLImplementation();
00032
00035 int connect(const char* dbname);
00036 int close();
00037 bool has_table(const char* tablename);
00038 int exec_query(const char* query);
00039 int num_tuples();
00040 const char* get_value(int tuple_no, int field_no);
00041
00042
00043
00044 const char* escape_string(const char* from);
00045 const u_char* escape_binary(const u_char* from, int from_length);
00046 const u_char* unescape_binary(const u_char* from);
00047
00049
00050 private:
00051 PGconn* db_;
00052 PGresult* query_result_;
00053 };
00054 }
00055
00056 #endif