src/Connection.h
branchv_0
changeset 36 91cb012d779a
parent 30 629565ff82d3
child 43 7f396cdb9628
--- a/src/Connection.h	Mon May 25 21:11:17 2020 +0200
+++ b/src/Connection.h	Sun May 31 16:56:07 2020 +0200
@@ -16,6 +16,11 @@
  */
 #pragma once
 
+#include <codecvt>
+#include <locale>
+
+#include <relpipe/reader/typedefs.h>
+
 #include "SqlException.h"
 #include "PreparedStatement.h"
 
@@ -25,16 +30,37 @@
 
 class Connection {
 private:
-	void* db;
-	void begin();
+	void* connection;
+	std::wstring_convert<std::codecvt_utf8<wchar_t>> convertor; // TODO: support also other encodings
 public:
-	Connection(const char* filename); // TODO: add DriverManager class + support connecting using a DSN or a connectString
+	Connection(void* connection);
 	virtual ~Connection();
-	PreparedStatement* prepareStatement(const char* sql);
+	PreparedStatement* prepareStatement(relpipe::reader::string_t sql);
 	bool getAutoCommit();
 	void setAutoCommit(bool autoCommit);
 	void commit();
 	void rollback();
+
+	class TableMetaData {
+	public:
+		relpipe::reader::string_t catalog;
+		relpipe::reader::string_t schema;
+		relpipe::reader::string_t name;
+		relpipe::reader::string_t type;
+	};
+	std::vector<TableMetaData> getTables();
+
+	class TablePrivilege : public TableMetaData {
+	public:
+		relpipe::reader::string_t grantor;
+		relpipe::reader::string_t grantee;
+		relpipe::reader::string_t privilege;
+		relpipe::reader::boolean_t isGrantable;
+
+	};
+	std::vector<TablePrivilege> getTablePrivileges();
+	
+	relpipe::reader::string_t getUserName();
 };
 
 }