ARC SDK
DBInterface.h
1 // -*- indent-tabs-mode: nil -*-
2 
3 #ifndef __ARC_DBINTERFACE_H__
4 #define __ARC_DBINTERFACE_H__
5 
6 #include <vector>
7 #include <string>
8 
9 namespace Arc {
11 
15  class Database {
16  public:
18  Database() {}
20  Database(std::string& server, int port) {}
22  Database(const Database& other) {}
24  virtual ~Database() {}
25 
27 
31  virtual bool connect(std::string& dbname, std::string& user,
32  std::string& password) = 0;
34  virtual bool isconnected() const = 0;
36  virtual void close() = 0;
38 
43  virtual bool enable_ssl(const std::string& keyfile = "", const std::string& certfile = "",
44  const std::string& cafile = "", const std::string& capath = "") = 0;
46  virtual bool shutdown() = 0;
47  };
48 
49  typedef std::vector<std::vector<std::string> > QueryArrayResult;
50  typedef std::vector<std::string> QueryRowResult;
51 
53 
54  class Query {
55  public:
57  Query() {}
59 
61  Query(Database *db) {}
62  //Query(Database* db, const std::string& sqlstr);
64  virtual ~Query() {}
65 
67  virtual int get_num_colums() = 0;
69  virtual int get_num_rows() = 0;
70 
72 
73  virtual bool execute(const std::string& sqlstr) = 0;
75 
77  virtual QueryRowResult get_row(int row_number) const = 0;
79 
81  virtual QueryRowResult get_row() const = 0;
83 
87  virtual std::string get_row_field(int row_number, std::string& field_name) = 0;
89 
96  virtual bool get_array(std::string& sqlstr, QueryArrayResult& result, std::vector<std::string>& arguments) = 0;
97  };
98 
99 } // namespace Arc
100 
101 #endif /* __ARC_DBINTERFACE_H__ */
Arc namespace contains all core ARC classes.
Definition: ArcConfig.h:11
Query(Database *db)
Constructor.
Definition: DBInterface.h:61
Class representing a database query.
Definition: DBInterface.h:54
Database(const Database &other)
Copy constructor.
Definition: DBInterface.h:22
virtual bool enable_ssl(const std::string &keyfile="", const std::string &certfile="", const std::string &cafile="", const std::string &capath="")=0
Enable ssl communication for the connection.
virtual int get_num_rows()=0
Get the row number in the query result.
virtual std::string get_row_field(int row_number, std::string &field_name)=0
Get the value of one specific field in one specific row.
Database()
Default constructor.
Definition: DBInterface.h:18
Interface for calling database client library.
Definition: DBInterface.h:15
virtual bool shutdown()=0
Ask database server to shutdown.
virtual bool isconnected() const =0
Get the connection status.
virtual bool get_array(std::string &sqlstr, QueryArrayResult &result, std::vector< std::string > &arguments)=0
Query the database by using some parameters into sql sentence.
virtual int get_num_colums()=0
Get the column number in the query result.
virtual bool execute(const std::string &sqlstr)=0
Execute the query.
virtual ~Query()
Deconstructor.
Definition: DBInterface.h:64
virtual void close()=0
Close the connection with database server.
Database(std::string &server, int port)
Constructor which uses the server&#39;s name(or IP address) and port as parameters.
Definition: DBInterface.h:20
virtual bool connect(std::string &dbname, std::string &user, std::string &password)=0
Do connection with database server.
Query()
Default constructor.
Definition: DBInterface.h:57
virtual QueryRowResult get_row() const =0
Get the value of one row in the query result.
virtual ~Database()
Deconstructor.
Definition: DBInterface.h:24